인공지능 개발일지

[컴퓨터 구조] 메모리 주소 지정 방식과 제어장치의 종류 본문

개발 지식/컴퓨터 구조

[컴퓨터 구조] 메모리 주소 지정 방식과 제어장치의 종류

Prcnsi 2022. 6. 15. 22:13
728x90

이번 시간에는 컴퓨터 구조에 여러 주소 지정 방식과 명령어 사이클 그리고 제어장치에 대해 알아봅시다.

이번 포스팅은 하나하나에 대한 자세한 설명보다는 각각 중요 키워드별로 뜻을 정리해보았습니다.

 


 

 

키워드 정리에 들어가기 앞서서 컴퓨터의 3대 구성요소에 대해 먼저 정리해봅시다.

컴퓨터는 크게 CPU, 기억장치, 입출력 장치(I/O)로 이루어져 있습니다.

그리고 각각은 아래와 같이 더 세분화할 수 있습니다. CPU는 연산을 담당하고 기억장치와 입출력 장치는 메모리의 저장과 입출력을 담당합니다. 그리고 이때 이들을 연결시키는 것은 주소 버스, 데이터 버스 등과 같은 시스템 버스가 담당합니다.

 

  • CPU(ALU, 제어장치, 레지스터)
  • 기억장치: 주기억장치(RAM, ROM), 보조기억장치(하드디스크,SSD, CD-ROM)
  • 입출력 장치(I/O): 입출력 장치는 Input과 Output으로 구성되어 있음

 

그리고 주기억장치에는 RAM과 ROM이 있는데 RAM은 휘발성 메모리이고 ROM은 비휘발성 메모리입니다. 따라서 무거운 프로그램들은 주기억장치의 ROM에 저장되고 비교적 가벼운 프로그램은 RAM에 저장됩니다.

 

제일 중요한 점은 전체 프로그램이 있을 때 이것들이 모두 한 번에 저장되어 있는 게 아니라 휘발성, 비휘발성에 따라 계속 저장되어 있는 메모리가 있고 RAM 메모리와 같이 실행과 함께 메모리에 올라가는 휘발성 메모리가 있다는 것입니다.

예를 들어 코랩이나 주피터에서 모델을 돌려도 명령의 실행마다 휘발성 메모리에 올라가서 매번 주피터 혹은 코랩을 킬 때마다 모든 명령을 다시 실행해 주어야 하는 것과 같습니다.

 

 

그럼 이제 전체적인 키워드에 대한 뜻을 확인해 봅시다.

키워드
주소 지정 방식의 종류 즉시, 직접, 레지스터, 레지스터 간접, 변위, 간접
즉시 주소지정 명령어 자체에 오퍼랜드를 포함,값 즉시 사용 가능 상수만 가능
직접 주소지정 전체 주소 지정, 동일한 메모리 위치에 액세스(전역변수만)
레지스터 주소지정 레지스터의 전체 주소 지정(액세스가 빠름)
레지스터 간접 주소지정 레지스터에 메모리의 주소(포인터)를 저장해 참조
변위 주소 지정 특정 메모리 위치에 대한 변위값 들어가 있음
-  인덱스 주소지정, 상대 주소지정, 베이스 레지스터
간접 주소지정 메모리 참조 2번 이상 일어남,  현재 사용 X
묵시적 주소지정 목적지를 명시하지 않아도 암묵적으로 위치를 알 수 있음
제어장치 컴퓨터의 모든 동작 제어하는 CPU의 핵심부분
-주기억장치,ALU,I/O장치에 프로세서가 전송한 명령어를 수행하도록함, 명령어 실행을 지시하는 제어신호 발생시킴
하드와이어 제어장치 -논리회로로 만들어진 하드웨어, 구조 물리적으로 변경치 않으면 수정 불가, opcode에 기본 데이터 포함되어 있음
-주기억장치에서 다음에 실행할 명령어를 명령 레지스터로 가져옴
마이크로 제어장치 -제어메모리 존재, 각 명령 실행 순서에 해당하는 해독된 제어 신호를 비트 패턴으로 만들어 제어메모리에 저장해둠
-실행할 명령어를 들고오는 건 동일
-각 명령의 opcode가 제어신호 생성 위해 해독되지 않고 해당 마이크로 프로그램의 시작주소만 지시
마이크로 제어장치 종류 수평적 마이크로 프로그램 – 1신호 -> 1비트
수직적 마이크로 프로그램 - 1신호 -> log2N비트
(수평:추가디코더 필요X,빠름,수직:추가 디코더 필요O, 느림)
명령어 사이클
(데이터경로 사이클)
-명령어 인출, 해독, 실행, 인터럽트 사이클로 이루어짐
인터럽트 사이클 매 명령어 사이클이 끝나고 인터럽트 유무를 점검하여 인터럽트가 있으면 인터럽트 처리 루틴을 실행함
마이크로 연산 프로세서의 가장 작은 동작
명령어 인출 사이클 다음에 실행할 명령어를 주기억장치에서 읽어 오는 과정,
PC -> MAR -> 주소버스 -> 주기억장치 -> 데이터버스 -> MBR-레지스터 저장,
사이클 시작시 다음 명령의 주소는 PC에 담겨 있음
명령어 해독 사이클 명령레지스터의 내용 중에서 오퍼랜드는제외한 opcode(첫 번째 자리)만 해독기로 전달됨. 해독기는 해당 루틴 해독
명령어 실행 사이클 해독된 명령어를 실행하는 사이클,오퍼랜드를 MAR로 전달하고 해당주소의 데이터를 MBR로 전달해 레지스터에 저장
RET 명령어 서브루틴의 실행 모두 끝나고 서브루틴에서 복귀하는명령
인터럽트 사이클 인터럽트가 발생했다면 인터럽트 사이클을 실행
-SP내용을 MAR로 전송하고 PC내용을 MBR로 전송하고 인터럽트에서 복귀할 때 사용할 주소를 메모리 스택에 저장
명령어 사이클 opcode에 대해 하나의 마이크로 연산 루티 존재
프로세서의 기본 장치 ALU,레지스터,내부 데이터경로,외부 데이터 경로, 제어장치
제어장치 기능 수행 조건 시스템 상태와 시스템 동작 제어가능한 입력(외부사양)과 내부 순서 제어와 실행 가능한 논리회로 필요
제어장치의 입/출력 클록, 명령레지스터,플래그,제어신호
데이터경로, ALU, 시스템 버스
파이프 라이닝 병렬화작업,명령하나를 여러개로 나눠 각각을 독립적인 장치에서 동시실행/ 명령어 단계 병렬-프로세서 단계 병렬
해저드 종류 데이터/제어/구조적
데이터 해저드 ALU연산결과를 레지스터에 기록하기전 다른 명령에 이 데이터가 필요한 상황(필요할 때 못씀, 데이터 의존성 문제)
해결) ALU결과를 직접 다음 명령어 전달,버블로 지연시키기
제어 해저드 CPU구조의 분기 명령이 실행될 때 발생 적재되어 실행되는 명령들이 필요 없을 때 프로그램의 속도를 저하시킴
해결) 지연슬롯을 넣고 목적지 주소 계산, (지연분기)
구조적 해저드 다른 단계에서 실행되는 명령이 컴퓨터 내의 장치 하나를 동시에 다른 단계의 명령을 실행할 때 발생하는 충돌
해결) 장치를 하나 더 두기(CPU내에 ALU 2)
슈퍼 스칼라 명령어를 동시에 가져와서 실행하는 프로세서,여러기능유닛필요, 2중 파이프라인 프로세서의 가능한 한가지 구조
기억장치 프로그램과 데이터를 저장하는 장치
-주기억장치,보조기억장치/내부,외부기억장치(cpu액세스)
위치로 기억장치 분류 내부: cpu내부 레지스터와 주기억장치
외부: 자기디스크 자기 테이프
성능에 따른 분류 성능은 액세스시간, 사이클 시간, 전송률에 따라 달라짐
액세스 방법에 따른 분류 순차: 자기테이프, 자기드럼 (직접-자기디스크, CD-ROM)
직접: 기억장치 근처로 먼저 이동한 위치부터 읽음
임의: 고유의 주소가 있어 어떤 위치든 임의 액세스 가능
연관: 임의 액세스 방식의 일종으로 내용의 일부로 접근
휘발성/비휘발 기억장치 비휘발성:ROM,플래시메모리,자기-표면기억장치, 광저장장치
휘발성: RAM
기억장치의 계층구조 (아래)자기테이프자기디스크,CD-ROM,DVD-주기억장치-캐시-CPU,레지스터(),위로갈수록 가격/속도증가,아래는용량
주기억장치 CPU와 직접 정보를 주고 받을 수 있도록 시스템버스로 연결되어 있음,현재는 RAMROM만 사용됨
MAR/MBR MAR은 메모리의 주소,MBR에는 전송하려는데이터가저장됨
메모리의 읽기액세스시간 CPU로부터 주소를 저장~읽힐 때까지
CS(칩 선택 신호),RD(읽기 신호)active-low
메모리의 쓰기액세스시간 CPU로부터 주소를 지정한 순간부터 저장할 때까지, 메모리주소를MAR로전송하는동시에저장할 워드를 MBR에 전송
기억장치의 용량표현 주소버스의 길이(n)+지정된 주소에 있는 데이터의 길이(m)
용량=2nXm
워드의 저장방법 주소와 데이터단위를 정의해야함
반도체 기억장치 읽기쓰기가능-RWM(RAM), 읽기만-ROM,
휘발성/비휘발성 DRAM, SRAM, PSRAM/PRAM,FRAM,MRAM
ROM 저장용-Mask ROM, PROM,EPROM,EEPROM,플래시메모리
RAM SRAM(플립플롭으로 저장),DRAM(커패시터에 전하충전저장)
자기디스크(하드디스크) 외부기억장치에 해당하는 보조기억장치,자기기억/광기억
자기기억장치 강자성체를 이용해 앙페르로 정보쓰고 패러데이로 읽음
SSD 하드디스크를 대안할 수 있는 SSD는 속도가 빠름
자기디스크 표면구조 강자성체물질이 코딩되어 있고, 위에는 헤드가 위치
-한쪽 면만 자성체: 단면 디스크 , 양쪽: 양면 디스크
용어 트랙, 원 한 줄, 정보저장/블록: 읽거나 쓰는 동작의 단위
자기디스크의 저장형식 각 트랙의 섹터 구별되야함, 포맷시 특정 위치에 기록
디스크 드라이브 구조 자기디스크, 헤드, 디스크 팔, 구동 장치 등이 있음
디스크 액세스 시간 전송요청에 대해 데이터가 전달될 때까지 걸리는 시간
-탐색시간+회전 지연 시간+데이터 전송 시간
탐색시간(ms) 헤드가액세스할데이터가있는트랙으로움직이는데걸리는시간
회전지연시간(7200,120) 디스크가 회전해서원하는섹터가헤드아래위치시 걸리는시간
데이터전송시간 헤드가 액세스한 데이터를 전송하는데 걸리는시간
SSD 특징 반도체 메모리 내장, 물리적으로 움직임X
SSD 컨트롤러 NAND 플래시 메모리에 데이터를 저장하고읽는것까지관장
SSD 메모리구조 페이지->블록->플레인->NAND (페이지는 저장 최소단위)
플래시 변환 계층 블록과페이지위에논리섹터구현함일종의미들웨어(ssd-nand)

 

감사합니다.

728x90