본문 바로가기
Computer Science/Computer Architecture & Organization

CA & CO Chapter 1 기본 개념과 컴퓨터 발전과정

by HaningYa 2020. 4. 15.
728x90

조직과 구조

  • 컴퓨터 구조 : 시스템의 기본적 특성들 중 프로그래머에게 보이는 부분들, 즉 프로그램의 논리적 수행에 직접적인 영향을 주는 시스템 특성(ISA:명령어 세트 구조)
  • 컴퓨터 조직 : 구조적 규격에서 정의한 사항들을 구현하기 위한 연산 유니트들과 상호 연결 방식. 구조적 속성의 예시로 명렁어 세트, 데이터 표현 비트 수, I/O 방식, 기억장치 주소지정. 조직적 속성에는 프로그래머에게는 보이지 않는 하드웨어 세부 사항들인 제어 신호, 컴퓨터와 주변 기기들 사이의 인터페이스 및 기억장치 기술

어떤 컴퓨터가 곱셈 명령어를 가지게 할것인지 --> 구조적 차원

그 곱셈 명령어를 어떤 방식으로 구현할 것인지 --> 조직 설계의 차원

 

  • computer familty(계열) : 구조는 같지만 조직이 나른 모델 --> 구조는 같으면서 성능과 가격이 다름
    - 구조는 그대로 적용, 조직은 기술의 변함에 따라 바뀜
    - 기존 시스템에서 개발한 소프트웨어 수정 없이 그대로 사용 가능
  • 마이크로컴퓨터 : 구조와 조직의 관계가 밀접
    - 소형 시스템들은 새로운 시스템이 개발되더라도 기존 시스템과의 호환성에 문제X
    - 더 우수한 구조를 설계하는 결과
    - 축소 명령어 세트(RISC) 예시

조직(Structure) 과 기능

컴퓨터의 이해 --> 복잡한 시스템들의 계층적 특성 파악 단계적 분석 

즉 설계자는 각 계층에 대하여 조직기능만 생각하면 됨

  • 조직 : 구성 요소들 간의 상호 연결 방법
  • 기능 : 조직의 한 부분을 이루는 각 구성요소의 동작

*하향식 방법(top-down) : 시스템의 최상위 계층에서 시작하여 단계적으로 하위 부분까지 설명

 

기능

  • 데이터 처리 : 데이터는 매우 다양한 형태이지만 몇 가지 근본적인 방법만 있음
  • 데이터 저장 : 데이터 처리 과정에서 컴퓨터 내부에 일시적인 저장 기능이 있어야함
  • 데이터 이동 : 주변장치(Peripheral) 에서의 데이터 입출력(I/O) 를 처리할 수 있어야함(데이터 통신)
  • 제어 : control unit가 명령어들에 따라 컴퓨터 리소스를 관리하고 효율적으로 조정하는 역할

조직(Top-down 예시)

  • Single-Processor_computer
    - CPU(Central Processing Unit) : 컴퓨터 동작 제어, 데이터 처리기능 수행, 프로세서라 부름
    - Main memory : 데이터 저장
    - I/O : 컴퓨터와 주변장치 사이 데이터 이동
    - System Interconnection : CPU, Mainmemory, I/O 사이 통신 제공 (예시 : System bus)
    • CPU 
      - Control Unit : 제어 유니트, CPU 의 동작을 제어하며 결과적으로 컴퓨터 전체 동작 제어
      - ALU : 산술논리연산장치, 컴퓨터의 데이터 처리 기능을 수행
      - Register : CPU 내부 저장 공간 제공
      - Interconnection : Control Unit, ALU, Register 사이 통신 제공
  • MultiCore Computer Structure
    - CPU
    - Core : 프로세서(CPU) 칩 상의 개별 프로세싱 유닛. 기능적으로 단일-CPU 시스템에서의 CPU와 동일.
    - Processor : 하나 혹은 그 이상의 코어들을 포함하고 있는 물리적 실리콘 조각.
                         만약 어떤 프로세서가 여러개의 코어를 포함 할 경우 멀티코어 프로세서라 부름
    • Core 
      - instruction logic : 명령어 논리, 명령어 인출하고 각 명령어 해독하여 명령어 연산과 오퍼랜드들의 기억 장소를 결정하는 역할
      - ALU : 어떤 명령어에 의해 지정된 연산 수행
      - load/store logic : 데이터 캐시를 경유하여 주 기억장치로 보내거나 가져오는 전송 관리

*PCB : printed circuit board : 칩들과 다른 전자 부품들을 고정시키고 서로 접속해주는 단단하고 평평한 보드, 마더보드

 


컴퓨터 역사

1. 진공관 : IAS 컴퓨터

- 폰노이만의 stored-program-concept 설계 방식

  • 주기억 장치 : 데이터와 명령어 저장
  • ALU : 2진수 데이터 처리
  • control unit : 기억장치에 있는 명령어 해석, 실행
  • I/O : control unit에 의해 작동

- 동작 방식 : control unit 이 기억장치로 부터 명령어를 한 개씩 가져와 실행(Register 라는 기억장치)

  • Memory Buffer Register(MBR) : 기억장치에 저장될 단어를 가지고 있거나 기억장치로 부터 읽혀진 단어를 저장
  • Memory Address Register(MAR) : 기억장치로 쓰여지거나 MBR로 읽혀질 단어의 기억장치 주소를 저장한다.
  • Instruction Register(IR) : 실행될 명령어의 8bit 연산 코드를 저장한다.
  • Instruction Buffer Register(IBR) : 기억장치로 부터 읽혀진 단어의 우측에 위치한 명령어를 일시적으로 저장하는 데 사용된다.
  • Program Counter(PC) : 기억장치로 부터 읽혀질 다음 명령어의 주소를 저장한다.
  • Accumulator(AC) Multiplier-Quotient(MQ) : 계산에 사용될 데이터와 ALU의 계산 결과를 일시적으로 저장한다. 예를들어 두개의 40비트 곱하면 80비트 수가 되는데 상위 40비트는 AC 에, 하위 40비트는 MQ 에 저장된다.

IAS 기억장치 형식
IAS 명령어 사이클

IAS 동작 방식을 이해 하기 위한 예제

 

ISA 어셈블리 코드 해석하기

1.4 Given the memory contents of the IAS computer shown below, show the assembly language code for the program, starting at address 08A. Explain what this program does. Address와 contents를 2진수..

haningya.tistory.com

2. 트렌지스터

- 실리콘으로 만들어진 고체 장치

3. 집적회로

- 전체 회로를 하나의 실리콘 조각 위에 제조하는 기술

- 무어의 법칙 : 하나의 칩에 집적될 수 있는 트렌지서터의 수가 매년 두배로 증가 --> 18개월 마다 두배로 증가

  1. 집적도 급속히 상승되는 동안 칩의 가격은 변하지 않음
  2. 논리회로 소자와 기억 소자가 더 근접하게 위치, 전기적 통로 길이 줄어들어 동작 속도 상승
  3. 컴퓨터의 크기가 작아짐
  4. 전력 소모가 줄어들고 냉각장치가 간단해짐
  5. 납땜 연결보다 신뢰성 높음
 

무어의 법칙

1.7 Explain Moore's Law The complexity for minimum component costs has increased at a rate of roughly a factor of two per year ... Certainly over the short term this rate can be expected to continue..

haningya.tistory.com

  • IBM System/360 : 산업체에서 개발한 최초의 컴퓨터 계열(computer family)
    - 한 모델에서 작성된 프로그램이 실행 시간만 차이가 있는 다른 모델에서 변경없이 그대로 실행 가능
    [특징]
    • 유사한 혹인 동일한 명령어
    • 유사한 혹인 동일한 운영체제
    • 상위 모델일 수록 속도의 향상
    • 상위 모델일 수록 I/O 포트의 증가
    • 상위 모델일 수록 기억장치 용량의 증가
    • 상위 모델일 수록 가격 상승
  • 구현 방법
    - 기본속도 : ALU에 더 복잡한 회로를 사용해 세분화된 연산을 병렬처리, CPU와 주기억장치 데이터 통로의 폭을 넓힘
    - 크기
    - 동시성 정도

그 이후 

반도체 기억장치, 마이크로 프로세서


1.1 일반적인 관점에서, 컴퓨터 조직과 컴퓨터 구조의 차이점은 무엇인가?

  • 컴퓨터 구조 : 프로그램의 논리적 수행에 직접적인 영향을 주는 시스템 특성 [ 프로그래머에게 보이는 부분들]
  • 컴퓨터 조직 : 구조적 규격에서 정의한 사항들을 구현하기 위한 연산 단위들과 상호 연결 방식

1.2 일반적인 관점에서, 중앙처리장치와 코어의 차이점은 무엇인가?

  • CPU : 명령어들을 인출하고 실행하는 부분. ALU, 제어 유니트 및 레지스터들로 구성.
  • 코어 : 프로세스칩 상의 개별 프로세싱 유닛을 말한다. 단일 CPU 시스템에서의 CPU와 같을 수 있음. 

1.3 컴퓨터의 네 가지 주요 기능들은 무엇인가?

  • 데이터 처리(data processing) : 데이터 처리에는 단 몇 가지 근본적인 방법만 있음
  • 데이터 저장(data storage) : 지나가는 데이터를 처리하지만, 이를 위해 일시적 데이터 저장 기능이 필요함. 또한 장기적 데이터 저장 기능도 가져야함.
  • 데이터 이동(data movement) : 입출력(I/O)와 주변장치, 데이터 통신과 관련
  • 제어(control) : 컴퓨터 내부에서 제어 유닛이 명령어에 따라 컴퓨터 자원을 관리하고 효율적으로 사용될 수 있도록 조정해줌.

1.4 컴퓨터의 주요 구조적 요소들을 열거하고 간략히 정의하라.

  • CPU (Central Processing Unit) : 컴퓨터의 동작을 제어하고 데이터 처리 기능들을 수행.
  • 기억장치(Main memory) : 데이터를 저장함.
  • 입출력(I/O) : 컴퓨터와 외부 장치 사이에 데이터를 이동한다.
  • 시스템 상호연결(System interconnection) : CPU, Main memory, I/O 사이의 통신을 제공하는 메커니즘 , eg ) system bus

1.5 코어의 주요 구조적 요소들을 열거하고 간략히 정의하라.

  • CU(Control unit) : CPU의 동작을 제어 = > 컴퓨터의 전체 동작을 제어
  • ALU(Arithmetic and Logic Unit) : 컴퓨터의 데이터 처리 기능을 수행
  • Register : CPU의 내부 저장 공간을 제공
  • CPU 상호연결(Interconnection) : CU, ALU and Register간의 통신을 위한 메커니즘 제공

1.6 멀티플렉서의 중요성은 무엇인가?

  • 멀티플렉서는 CPU와 데이터 채널이 기억장치를 액세스하는 순서를 정해줌으로써 그들이 독립적으로 동작할 수 있도록 해주어 충돌을 방지시켜준다.

1.7 무어의 법칙(Moore’s law)를 설명하라.

  • 무어의 법칙 : 하나의 칩에 직접될 수 있는 트랜지스터의 수는 24개월마다 두 배로 증가하고 있다. 

1.8 일반적인 관점에서, 깊이 임베디드된 시스템이란 무엇인가?

  • 깊이 임베디드된 시스템(deeply embedded system)에서는 프로세서의 동작이 프로그래머나 사용자에 의해 파악되기 어렵다. 마이크로프로세서보다는 마이크로컨트롤러를 사용하며, 그 장치를 위한 프로그램 논리가 일한 ROM에 저장되면 프로그래밍을 할 수 없게 되며, 사용자와 상호 작용도 할 수 없다. 
  • 주위 환경에서 무언가를 검출하는 단일-목적용 장치이고, 기본적인 수준의 프로세싱을 수행하며, 그 결과에 대하여 어떤 동작을 수행한다. 무선 능력을 가지기도 하며, 넓은지역(eg, 공장이나 농업지역)에 배치된 센서들의 네트워크와 같은 형태로 나타나기도 한다. 깊이 임베디드된 시스템들은 기억장치, 프로세서 크기, 시간 및 전력소모 면에서 극심한 자원 제약을 가신다. 

1.9 Cortex - M 시리즈의 네 가지 버전들을 열거하고 간략히 정의하라

  • ARM Cortex - M : 주로 마이크로컨트롤러 도메인을 위해 개발되었음. (신속하며 매우 결정적인 인터럽트 관리가 필요하며 아주 적은 게이트 수와 가장 낮은 전력 소모량도 달성되어야함.) Cortext-M 시장은 IoT 장치, 무선센서/구동장치 네트워크, 자동차 전자장치 등을 포함한다. 
  • Cortex-M0 : 8-비트 및 16-비트 응용들을 위해 설계, 저가, 최저전력 및 단순성에 초점을 두었음.
  • Cortex-M0+: M0의 보강된 버전으로 에너지 효율을 더욱 개선함.
  • Cortex-M3 : 16-비트 및 32-비트 응용들을 위해 설계됨. 성능과 에너지 효율에 역점을 둠
  • Cortex-M4 : Cortex-M3의 모든 특징들을 제공하며, 디지털 신호처리 작업을 지원하기 위한 명령어들이 추가됨.

아래의 식의 결과를 계산하기 위한 IAS 프로그램을 작성하려고 한다.

계산 결과는 산술적 overflow 가 일어나지 않으며 X,Y,N은 1 이상의 양수로 가정한다.

IAS는 어셈블리 언어는 없고 기계언어만 가지고 있다.

a) IAS 프로그램을 작성할 때 수식

을 이용해라.

명령어 순서(위치) 명령어/값 설명
0 <> 변수 N을 초기화 한다.
1 1 1을 할당한다
2 2 2를 할당한다
3 0 Y를 초기화 한다.
4-왼쪽 LOAD M(0) N -> AC
4-오른쪽 ADD M(1) AC + 1 -> AC
5-왼쪽 MUL M(0) N(N+1) -> AC
5-오른쪽 DIV M(2) AC/2 -> AC
6-왼쪽 STORE M(3) AC -> Y
6-오른쪽 JUMP M(6,20:39) DONE,HALT
  • IAS 명령어는 40bit 로 좌/우 명령어 각 20bit로 나누어 진다.
  • N은 "0" 위치에 있다
  • 나중에 N은 정수값으로 초기화 되며 그 후에 2가 된다.
  • Y변수는 0으로 초기화 된다.
  • N은 AC 에 저장된다. N->AC 명령어는 4번째 명령어 위치의 왼쪽 부분에 저장된다.
  • AC를 1만큼 증가시키고 AC에 저장한다. N+1->AC 는 4번째 명령어의 오른쪽에 위치한다.
  • N(N+1) -> AC는 5번째 명령어 왼쪽에 위치한다.
  • AC/2 -> AC는 5번째 명령어 오른쪽에 위치한다.
  • 계산된 AC 를 Y 에 6번째 왼쪽 명령어로 저장한다.
  • 6번째 오른쪽 명령어는 HALT(DONE)

b) (a)의 수식을 이용하지 말고 어려운 방법으로 프로그램을 작성해라.

3 까지는 위와 동일

  1. LOAD M(0) || SUB M(2) (N->AC) (N-i ->AC)
  2. JUMP+M(6,0:19) || JUMP+M(5,20:39) (AC>0?) (i=N done)
  3. LOAD M(2) || ADD M(1) (i) (i+1 -> AC)
  4. STOR M(2) || ADD M(3) (AC -> i) (i +Y -> AC)
  5. STORE M(3) JUMP M(4,0:19) (AC -> Y) (1의 왼쪽 주소에 있는 명령어 실행)

i 루프를 이용해야 한다. 


 

a) IAS 에서 누산기의 내용을 기억장치 8번지에 저장하기 위한 기계어 코드는 어떤 형태를 가지게 되는가?

STOR M(X) opcode : 00100001
8번지 12비트 표현 : 000000001000
machine code : 00100001000000001000

b) IAS 에서, 기억장치 16번지의 내용을 누산기로 적재하기 위한 기계어 코드는 어떤 형태를 가지게 되는가?

LOAD M(X) opcode : 00000001
16번지 12비트 표현 : 000000010000
machine code : 00000001000000010000

On the IAS, describe in English the process that CPU must undertake to read a value from memory and to write a value to memory in terms of what is put into the MAR, MBR, address bus, data bus, and control bus.

  • for reading a content from memory, CPU puts te address into MAR. Then the CPU asserts te Read control line to memory and puts the address on the address bus. After that, the memory will copy the contents of that memory location passed on the data bus. Finally the data will be transferred to the MBR.
  • for waiting a content to memory, the CPU puts the address in to MAR. Then the CPU puts the data into MBR. After that the CPI will assert the Write control line to memory and puts the address on the address bus and the data on the data bus/ Finally the memory will transfer the data on data bus into the appropriate memory location.

IAS는 인출 사이클과 실행 사이클이라고 하는 두 개의 서브 사이클들로 이루어진 명령어 사이클을 반복적으로 수행함으로써 동작한다. IAS 에서 인출 사이클 동안에 수행되는 작업들과 실행 사이클 동안에 수행되는 작업들을 영어로 설명하라.

  • 패치 사이클(Fetch Cycle) : 다음에 실행될 명령어의 연산 코드가 IR에 적재, 주소부분은 MAR에 적재, 명령어는 IBR에서 가져오거나 MBR에 워드를 적재한후 기억장치에서 읽어와 IBR, IR, MAR로 보냄
  • 실행 사이클(Execution Cycle) : IR에 연산코드가 있으면 실행, 제어 회로에서 연산코드를 해석, ALU에 의해 연산이 수행되도록 제어신호를 보냄.

 

 

ISA 어셈블리 코드 해석하기

1.4 Given the memory contents of the IAS computer shown below, show the assembly language code for the program, starting at address 08A. Explain what this program does. Address와 contents를 2진수..

haningya.tistory.com


그림 1.8의 인출 사이클 동안에, 명령어를 항상 IBR로부터 가져오는 이유는 무엇인가?

  • Instruction buffer register (IBR): Used to hold temporarily the right hand instruction from the word in memory.
  • HALT 나 Done 이 항상 instruction의 right 에 있어서 그런가??

 

 

CA & CO Chapter 2 성능문제

마이크로 프로세서 기반 시스템들의 성능을 필요로 하는 응용들 영상처리 3차원 렌더링 음성인식 화상 회의 멀티미디어 저작 파일들에 대한 음성 및 비디오 주석 시뮬레이션 모델링 마이크로 프로세서의 속도 프..

haningya.tistory.com

 

728x90

댓글