코딩공부/OS

05. CPU와 메모리

뉼👩🏻‍💻 2022. 12. 27. 12:22
728x90
반응형
SMALL

 

📍 CPU

산술논리 연산장치 / 제어장치 / 레지스터  로 구성됨 

 

📍 산술논리 연산장치  Arithmetic and Logic Unit, ALU

: CPU에서 데이터를 연산하는 장치로 데이터의 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 AND, OR 과 같은 논리 연산을 수행함 

 

📍제어 장치 Control Unit

:  CPU에서 작업을 지시하는 부분 

- 명령어를 해석하여 제어 신호를 보내고 CPU내의 데이터 흐름을 조절하는 역할을 한다 

 

📍레지스터  Register

: CPU 내에 데이터를 임시로 보관하는 곳

- CPU가 연산을 할 때 필요한 데이터를 CPU로 가져와 임시로 보관해야 하는데, 이 때 사용되는 장소가 레지스터임 

 

 

* CPU는 0과 1의 2진수로 이루어진 기계어 machine code만 인식함 

➡️ CPU가 이해할 수 있도록 컴파일러를 이용하여 기계어로 바꾸어야 함 

 

 

* CPU는 필요한 데이터를 메모리에서 가져와 레지스터에 저장하고 산술논리 연산장치를 이용하여 연산을 한 후, 그 결과를 다시 레지스터에 저장했다가 메모리에 옮기는데, 이때 사용되는 레지스터는 데이터 레지스터와 주소 레지스터임 

 

사용자 가시 레지스터 
user-visible register
데이터 레지스터
DR , Data Register 
메모리에서 가져온 데이터를 임시로 보관할 때 사용
CPU 에 있는 대부분의 레지스터가 데이터 레지스터이기 때문에 일반 레지스터 또는 범용 레지스터라고 불림 
주소 레지스터
AR, 
데이터 또는 명령어가 저정된 메모리의 주소 
사용자 불가시 레지스터
user-invisible register
프로그램 카운터(PC)
Program counter

= 멸령어 포인터 
intruction pointer

다음에 실행할 명령어의 위치정보(코드의 행 번호, 메모리 주소)를 저장한다

명령어 레지스터(IR)
Intruction register 

현재 실행 중인 명령어를 저장한다 

제어 장치는 명령어 레지스터에 있는 명령을 해석한 후 외부 장치에 적절한 제어 신호를 보냄 
메모리 주소 레지스터 (MAR)
Memory Address Register

메모리 관리자가 접근해야 할 메모리의 주소를 저장한다 

명령어를 처리하는 괒어에서 필요한 메모리 주소를 이 레지스터에 넣으면 메모리 관리자가 이를 인식하여 해당 메모리 위치의 데이터를 가져오거나 해당 메모리 위치에 데이터를 저장함 
메모리 버퍼 레지스터(MBR)
Memory Buffer Register
메모리 관리자가 메모리에서 가져온 데이터를 임시로 저장한다
항상 메모리 주소 레지스터와 함께 동작함 
프로그램 상태 레지스터(PSR)
Program Status Register 

= 플래그 레지스터 Flag register
= 상태 레지스터 status register
= 컨디션 레지스터 condition register 

연산 결과(양수, 음수 등)를 저장한다 

산술논리 연산장치와 연결되어 있으며 연산 결과가 양수, 음수, 0 인지, 자리 올림의 유무 등을 저장함 


 

* 특수 레지스터 : 사용자가 임의로 변경할 수 없음 

 

 

 

 

📍버스

: CPU와 메모리, 주변장치 간에 데이터를 주고 받을 때 사용함 

- 다음 작업을 지시하는 제어 신호, 메모리의 위치 정볼르 알려주는 주소, 처리할 데이터가 오고 가며 각각 제어 버스, 주소버스, 데이터 버스에 실림 

 

◼️ 제어버스 Control bus 

: 다음에 어떤 작업을 할지 지시하는 제어 신호가 오고 감

- 주변 장치도 하드디스크에 저장 명령을 내리거나 사운드 카드에 소리를 내라는 명령을 내릴 때 제어 버스를 통해 전달됨 

- CPU, 메모리, 주변장치와 양방향으로 오고감 

 

 

◼️ 주소 버스 address bus

: 메모리의 데이터를 읽거나 쓸 때 어느 위치에서 작업할 것인지를 알려주는 위치 정보(주소)가 오고 감 

- 주변 장치도 하드디스크의 어느 위치에서 데이터를 읽어올지, 어느 위치에 저장할지에 대한 위치 정보가 주소 버스를 통해 전달됨 

- 주소 레지스터와 연결되어 있으며 단방향임  ( CPU에서 메모리나 주변장치로 나가는 주소 정보는 있지만 주소 버스를 통해 CPU로 전달되는 정보는 없음 )

 

 

◼️ 데이터 버스 data bus

: 제어 버스가 다음에 어떤 작업을 할지 신호를 보내고 주소 버스가 위치 정보를 전달하면 데이터와 데이터 버스data bus에 실려 목적지까지 이동함

- 메모리 버퍼 레지스터와 연결되어 있으며 양방향 으로 이루어짐 

 

* 버스의 대역폭 bandwidth 

: 한 번에 전달할 수 있는 데이터의 최대 크기를 말함 

= CPU가 한 번에 처리할 수 있는 데이터의 크기와 같음

 

 ** 워드 word

: CPU가 한 번에 처리할 수 있는 데이터의 최대 크기

- 버스의 대역폭과 메모리에 한 번에 저장되는 단위

ex. 32bit CPU에서 1word = 32bit

 

 

 

 

🚨 모든 프로그램은 메모리에 올라와야 실행될 수 있다

- 메모리에는 실행에 필요한 프로그램과 데이터가 존재함 

 

📍RAM  / ROM 

램 RAM
Random Access Memory

: 읽거나 쓸 수 있음 
휘발성 DRAM, Dynamic RAM
: 저장된 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 함
SRAM Static RAM
: 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생할 필요가 없음 

SDRAM 
Stnchronous Dynamic Random Access Memory
: DRAM이 발전된 형태, SRAM과는 완전히 다른 종류의 램 

- 클록틱(펄스)이 발생할 때 마다 데이터를 저장하는 동기 DRAM
비휘발성
 non-volatility memeory
= 메인 메모리 
플래시 메모리
ex. 디지털 카메라, MP3 플레이어, USB 드라이버
FRAM
PRAM
롬 ROM
Read Only Memory

: 읽기만 가능 
마스크롬 mask ROM 
: 데이터를 지우거나 쓸 수 없음
PROM Programmable ROM
: 전용 기계를 이용하여 데이터를 한 번만 저장할 수 있음
EPROM Erasable {rogrammable ROM
: 데이터를 여러 번 쓰고 지울 수 있음 
- 플래싀 메모리처럼 사용할 수 있지만 비싸서 잘 사용하지 않음 

 

* 램 : 무작위로 데이터를 읽어도 저장된 위치와 상관없이 같은 속도로 데이터를 읽을 수 있음 

* 롬 : 램과 달리 전력이 끊겨도 데이터를 보관할 수 있지만 데이터를 한 번 저장하면 바꿀 수 없음 

ex. CD 는 CD-ROM에 저장함 , 바이오스 BIOS Basic Input/Output system을 롬에 저장함 

*바이오스(BIOS; Basic Input/Output System)는 운영 체제 중 가장 기본적인 소프트웨어이자 컴퓨터의 입출력을 처리하는 펌웨어

 

 

* 메인 메모리는 전력이 끝겨도 내용이 남기 때문에 비휘발성 메모리를 사용하는데. 데이터 보관이 가능해야 하므로 메모리 내부가 복잡하고 속도가 느리며 가격이 비싸다 

 

 

 

📍부팅  booting

: 컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정 

- 사용자가 컴퓨터의 전원을 켜면

1. 롬에 저장된 바이오스가 실행됨  ➡️ 바이오스는 CPU, 메모리, 하드디스크, 키보드, 마우스와 같은 주요 하드웨어가 제대로 작동하는지 확인함 

2. 이상이 없으면 하드디스크의 마스터 부트 레코드 Master Boot Record 에 저작된 작은 프로그램을 메모리로 가져와서 실행함 

* 마스터 부트 레코드 Master Boot Record  : 하드 디스크의 첫 번째 섹터 

- 운영체제를 실행하기 위한 코드인 부트스트랩 bootstrap이 이곳에 저장되어 있음 

 

* 부트스트랩 코드 : 운영체제를 메모리로 가져와 실행하는 역할을 하는 작은 프로그램 

 

3. 마스터 부트 레코드에 있는 부트스트랩이 메모리에 올라오면 하드시시크에 저장된 운영체제를 메모리로 불러옴 

 

➡️ 그래서 한 컴퓨터에 운영체제가 2개이상이면 바이오스가 하드웨어 점검을 마치고 마스터 부트 레코드에서 부트스트랩을 가져와 어떤 운영체제로 사용할 것인지 물어보는 화면이 나온다. 이 화면이 부트스트랩 코드가 실행된 화면임 

- 하나의 운영체제가 설치된 컴퓨터의 부트스트랩이라면 어떤 운영체제를 선택할 것인지 물어보는 과정 없이 바로 운영체제를 메모리에 올린다

 

 

728x90
반응형