본문 바로가기
C++ 200제/코딩 IT 정보

컴퓨터 구조와 설계 - 원리 이해, 기본 구성 위한 요약 강의

by vicddory 2017. 2. 24.

컴퓨터 구조와 설계 (원리 이해, 기본 구성)


1. 컴퓨터의 기본 구성 


기본적인 구성 레지스터

  • AC - (누산기) 프로세서 처리용
  • DR - 메모리에 읽어 온 피연산자 저장
  • PC - 다음 수행할 명령 주소 값 저장
  • AR - 메모리 주소 값을 나타냄
  • IR - 메모리에서 읽어 온 명령어를 저장
  • TR - 계산 도중 임시 데이터를 저장
  • OUTR - 문자 (8bit) 출력을 송신
  • INPR - 문자 (8bit) 출력을 수신



컴퓨터 구조 - Registers in the Basic Computer컴퓨터 구조 - Registers in the Basic Computer


명령어 형식(세 가지 명령어 코드 형식)


  • 메모리 참조 명령어
  • 레지스터 참조 명령어
  • 입출력 명령어



컴퓨터 구조 - Instructions컴퓨터 구조 - Instructions



2. 컴퓨터 기본 동작에 대해

컴퓨터 기본 동작의 흐름도(아래 그림 5개는 참조만)



컴퓨터 구조 - Memory reference Instruction컴퓨터 구조 - Memory reference Instruction


컴퓨터 구조 - 순서도컴퓨터 구조 - 순서도


컴퓨터 구조 - A Terminal with a keyboard and a Printer컴퓨터 구조 - A Terminal with a keyboard and a Printer


컴퓨터 구조 - Instruction Description컴퓨터 구조 - Instruction Description



레지스터 전송문(컴퓨터 기본 동작의 기술 II (레지스터 전송 흐름))



컴퓨터 구조 - 레지스터 전송 흐름컴퓨터 구조 - 레지스터 전송 흐름



3. 기본 컴퓨터의 설계(4096*16)


기본적인 컴퓨터의 H.W 요소


  1. 16비트의 4096 워드를 가진 메모리장치
  2. 9개의 레지스터 : AC, DR, PC, AR, IR, TR, OUTR, INPR, SC
  3. 7개의 플립플롭 : I, S, E, R, IEN, FGI, FGO
  4. 2개의 디코더 : 3 * 8동작 디코드, 4 * 16 타이밍 디코드
  5. 16비트 공통 버스
  6. 제어 논리 게이트들
  7. AC의 입력에 연결된 가상논리 회로(ALU)


컴퓨터 구조 - ALU 구조컴퓨터 구조 - ALU 구조


컴퓨터 구조 - Control unit of basic computer컴퓨터 구조 - Control unit of basic computer



제어논리 게이트

  • 레지스터와 메모리 제어
  • 단일 플립플롭에 대한 제어
  • 공통버스에 대한 제어
  • 이런 논리회로 통해서 출력에는 제어하는 신호로 출력이 된다


AC의 입력에 연결된 가산 논리 회로



컴퓨터 구조 - Circuits associated with AC 1컴퓨터 구조 - Circuits associated with AC 1


컴퓨터 구조 - Circuits associated with AC 2컴퓨터 구조 - Circuits associated with AC 2



4. 지연 전송 제어


Berkeley RISC는 애초부터 pipelining으로 설계되었습니다.


특히나 명령어 fetchoverlapping과 함께 실행되면서, 조건부 점프, 무조건 점프, 프로시저 호출과 같은 반환되는 형태의 전송 제어 명령어로 방해합니다.


『파이프라인에서 flushing(취소) 대신에 하나의 사이클』을 낭비하는 데 비해, RISC는 delayed-branch 구조를 사용한다는 특징이 있지요.


중요한 특징은 바로 이것인데, 컴파일러를 통해 충돌 문제를 해결하는 것으로 데이터 충돌(data hazard)을 감지하고, 의미 없는 NO-Operation(0 + 0과 같은 의미 없는 연산) 명령을 사용하여 충돌된 데이터의 참조가 지연되도록 명령어를 재배치하는 것입니다.


이로써 컴파일러는 분기 명령 전후의 명령어를 분석하여 지연된 부분에 유용한 명령어가 삽입되도록 프로그램 순서를 재배치합니다.


이런 지연 제어를 위한 명령어는 load와 store와 같은 주소 모드로 사용하며, PC의 값을 레지스터에 저장해 놓습니다.


※ 데이터 해저드 발생 이유 

  1. 컨트롤 해저드 -> 이때 분기
  2. 데이터 해저드
  3. 리소스 해저드


컴퓨터 구조와 설계 (원리 이해, 기본 구성)

댓글