Top-Level 관점에서의 컴퓨터 기능과 상호연결 - 컴퓨터 구성요소
Key Point
1. 명령어 사이클은 명렁어 fetch, 0개 또는 하나 이상의 피연산자 fetch와 피연산자 store 그리고 인터럽트 check로 구성된다.
2. 주요 컴퓨터 시스템 구성요소 (프로세서, 메인 메모리, I/O 모듈) 은 data, control signal 교환을 위한 상호 간의 연결이 필요하다.
이러한 상호 연결을 위해 여러 개의 라인으로 이루어진 공유 시스템 버스가 사용된다.
3. 버스 설계시 중요한 요소는 timing 과 width이다.
1. 컴퓨터 구성요소 (Computer components)
모든 현대 컴퓨터의 설계는 폰 노이만의 폰 노이만 아키텍처를 기초로 한다.
폰 노이만 아키텍처는 다음과 같은 세 가지의 특징을 가진다.
1. 데이터와 명렁어들은 읽기-쓰기가 가능한 하나의 메모리에 저장된다.
2. 메모리의 구성요소들은 가지고 있는 데이터 타입에 상관없이 접근 가능하다.
3. 실행은 순차적으로 발생한다
Programming in hardware
바이너리 데이터를 저장할 수 있고, 데이터를 이용하여 산술/논리연산을 진행할 수 있는 하드웨어는 작고 기본적인 logic들로 구성된다.
이러한 방법으로 특정 계산을 실행할 수 있는 새로운 logic을 생성할 수 있는데 다양한 logic들을 연결하여 우리가 원하는 프로그래밍을
할 수 있다. 이러한 프로그램은 하드웨어 의해서 진행되는데, 이를 hardwired program이라고 부른다.
Programming in software
그런데 만약에 범용 산술/논리연산이 가능한 하드웨어 장치가 존재한다면?
hardwired program처럼 새로운 연산을 위해 새로운 logic 구성요소를 추가할 필요 없이 연속된 code 또는 명령어 ( software ) 가 생성
한 control signal만으로 다양한 연산을 실시할 수 있게 되는 것이다.
결과로 필요한 것은 다음과 같으며 이는 CPU 의 주요 구성요소이다.
1. Instruction interpreter (명령어 해석기)
2. General-purpose arithmetic & logic functions (범용 산술/논리 장치)
- 물론 컴퓨터를 구성하기 위해서는 추가로 여러 개의 구성요소들이 필요하다.
- 데이터와 명령어들은 시스템 상에 놓여야 하고 input/output을 가능하게 하는 I/O module 이 필요하다.
- 프로그램은 항상 순차적으로 실행되지 않으며, 명령어가 하나 이상의 메모리 요소를 요구할 수 있다. 이를 구현하기 위해 데이터와 명령
어를 저장할 수 있는 저장공간이 필요한데 이 모듈을 main memory / memory이라 한다.
- CPU , I/O 모듈, Main memory의 상호작용을 다음과 같이 나타낼 수 있다.
- CPU는 memory와의 상호작용을 위하여 MAR, MBR 을 가지고 I/O 모듈과의 상호작용을 위해 I/O AR, I/O BR을 가진다.
- I/O Module 외부 장치로부터의 데이터를 CPU, memory 와 교환한다.
- Memory는 연속된 번호로 표시된 주소들로 구성되며 각각의 주소 위치에는 데이터, 명령어들이 바이너리 형태로 저장되어 있다.
출처 : Computer Organization & Architecture Designing for Performance