Computer engineering/컴퓨터구조

3-1 컴퓨터 기능과 상호연결 - 컴퓨터 구성요소

샌디아고 2017. 3. 13. 15:09

Top-Level 관점에서의 컴퓨터 기능과 상호연결 - 컴퓨터 구성요소


Key Point


1. 명령어 사이클은 명렁어 fetch, 0개 또는 하나 이상의 피연산자 fetch와 피연산자 store 그리고 인터럽트 check로 구성된다.


2. 주요 컴퓨터 시스템 구성요소 (프로세서, 메인 메모리, I/O 모듈) 은 data, control signal 교환을 위한 상호 간의 연결이 필요하다. 


이러한 상호 연결을 위해 여러 개의 라인으로 이루어진 공유 시스템 버스가 사용된다.


3. 버스 설계시 중요한 요소는 timingwidth이다.




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

  www.prenhall.com/stallings