ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CPU와 메모리
    CS - Operating System 2022. 5. 24. 16:48

    CPU

    CPU의 기본 구성

    • 산술논리 연산장치 ALU(Arithmetic and Logic Unit)
       : 데이터의 산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈 등)과 논리연산(AND, OR 등) 수행한다.
    • 제어장치 control unit
       : CPU에서 작업을 지시하는 부분
    • 레지스터 register
       : CPU내의 데이터를 임시로 보관하는 곳

    레지스터의 종류

    가시 레지스터 user-visible register

     : 사용자 프로그램에 의해 변경된다.

    • 데이터 레지스터 data register (일반 레지스터, 범용 레지스터)
       : 메모리에서 가져온 데이터를 임시로 보관할 때 사용한다.
    • 주소 레지스터 address register
       : 데이터 또는 명령어가 저장된 메모리의 주소가 저장된느 곳이다.

    특수 레지스터

    • 프로그램 카운터(PC)
       : 다음에 실행할 명령어의 주소를 저장하는 레지스터이다.
    • 명령어 레지스터(IR; instruction register)
       : 현재 실행 중인 명령어를 저장한다.
    • 메모리 주소 레지스터(MAR; memory address register)
       : 메모리에서 데이터를 가져오거나 메모리로 데이터를 보낼 때 주소를 지정하기 위해 사용한다.
    • 메모리 버퍼 레지스터(MBR; memory buffer register)
       : 메모리에서 가져온 데이터나 메모리로 옮겨 갈 데이터를 임시로 저장한다.
    • 프로그램 상태 레지스터(PSR; program status register)
       : 연산 결과(양수 음수 여부, 0인지 여부, 자리 올림 여부)를 저장한다.
    MBR은 항상 MAR과 함께 동작한다.

     

    버스의 종류

    버스는 CPU와 메모리, 주변장치 간에 데이터를 주고 받을 때 사용한다.

    버스에 실리는 정보는 제어 신호, 주소, 데이터이다.

    각각 제어버스, 주소버스, 데이터 버스에 실린다.

    1. 제어버스

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

    ex) 읽기 신호, 쓰기 신호, 등

    메모리에서 오류가 발생한 경우나 주변장치에 데이터가 도착했다는 신호 등도 CPU로 전달된다.

    제어버스의 신호는 CPU, 메모리, 주변장치와 양방향으로 오고 간다.

    2. 주소버스

    메모리의 데이터를 읽거나 쓸 때 어느 위치에서 작업할 것인지를 알려주는 주소가 오고 간다.

    주소버스는 MAR과 연결되어 있고 단방향이다.(CPU → 주변장치)

    3. 데이터버스

    데이터가 실려 목적지까지 이동하는 버스이다.

    데이터 버스는 MBR와 연결되어 있으며 양방향이다.

     

    버스의 대역폭

    한 번에 전달할 수 있는 데이터의 최대 크기이다.

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

    ex) 32bit, 64bit

     

    메모리

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

    메모리 주소는 바이트 단위로 지정되고 메모리에서 데이터를 읽거나 쓸 때는 워드 단위로 움직인다.

    메모리의 종류

    램 Random Access Memory

     : 읽거나 쓸 수 있는 메모리이다.

    • 휘발성 메모리 volatility memory
    • DRAM (Dynamic Ram, 동적 램)
       : 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 한다.
    • SRAM (Static RAM, 정적램)
       : 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생할 필요가 없다.
    • SDRAM (Synchronous Dynamic Random Access Memory)
       : DRAM이 발전된 형태. 클록틱이 발생할 때 마다 데이터를 저장하는 동기 DRAM
    • 비휘발성 메모리  non-volatility memory
    • 플래시 메모리
      플래시메모리의 각 소자는 최대 사용 횟수가 제한되어 몇 천번~만번 사용하면 기능을 잃는다.
    • FRAM Ferroelectric RAM
    • PRAM Phase change RAM
    비휘발성 메모리는 내부가 복잡하고 속도가 느리고 가격이 비싸서 메인메모리는 휘발성 메모리를 사용한다.

    롬 Read Only Memory

     : 읽기만 가능한 메모리이다.

    전력이 끊겨도 데이터를 보관한다.

    데이터를 한 번 저장하면 바꿀 수 없다.

    바이오스를 롬에 저장한다.

     

    메모리 보호

    CPU는 현재 진행 중인 작업의 메모리 시작 주소를 경계 레지스터(bound register)에 저장한 후 작업한다.

    또 현재 진행중인 작업이 차지하고 있는 메모리의 크기를 한계 레지스터(limit register)에 저장한다.

     

    작업이 진행되는 동안 이 두 레지스터의 주소 범위를 벗어나는지 하드웨어적으로 점검함으로써 메모리를 보호한다.

    만약 두 레지스터 값을 벗어나면 메모리 오류와 관련된 인터럽트가 발생한다.

    (인터럽트가 발생하면 모든 작업이 중단되고 CPU는 운영체제를 깨워서 인터럽트를 처리하도록 시킨다.)

     

    부팅 과정

    운영체제도 CPU에 의해 실행되는 프로그램이기 때문에 메모리에 올라와야 한다

    부팅 booting : 컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정
    1. 사용자가 컴퓨터 전원을 키면 롬에 저장된 바이오스가 실행된다.
    2. 바이오스는 CPU, 메모리, HDD, 키보드, 마우스와 같은 주요 HW가 제대로 작동하는지 확인한다.
    3. 이상이 없으면 HDD의 마스터 부트 레코드(MBR)에 저장된 작은 프로그램을 메모리로 가져와 실행한다.
    4. HDD에 저장된 운영체제를 메모리로 불러온다.
    마스터 부트 레코드 : 하드 디스크의 첫번째 섹터. OS를 실행하기 위한 코드인 부트스트랩이 저장되어 있다.
    부트스트랩 코드 : OS를 메모리로 가져와 실행하는 역할을 하는 작은 프로그램

     

    [출처]

    쉽게 배우는 운영체제

Designed by Tistory.