Computer Architecture
refers to those attributes of the system that are visible to a programmer – those attributes that have a direct impact on the execution of a program (프로그래머에게 보이는 개념)
Instruction set: 3-, 2-, 1-, 0-address format, CISC and RISC, ……
Data representations: signed magnitude, 2’s complement, floating-point
Addressing: direct, indirect, relative, ……
I/O mechanisms: memory mapped, I/O mapped
Computer Organization
Synonymous with architecture in many uses
프로그래머에게 보이지 않는 개념(더 로우레벨)
Device를 어떻게 만들 것인가?
Why Learn Computer Architecture
- CA lies between hardware and software
- Hardware implies performance
- Software affects usefulness (ease of use)
- CA cannot be isolated from software issues (OS, complier, OOP, ……) and technology issues (memory technologies, underlying VLSI trends, ……)
폰노이만 구조
- 프로그램을 메모리에 저장해서 실행하는 개념
- 메모리에 저장하는 것이니 CPU 입장에서 불러오는 메모리의 내용만 바꾸면 매번 다른 일을 할 수 있다 => 소프트웨어 라는 개념이 탄생
- 단점으로는 CPU가 아무리 빨라도 메모리가 bottle neck이 된다는 것.
- 메모리 용량은 유지하면서 어떻게 하면 속도를 빠르게 할 수 있을까 라는 게 컴퓨터하는 사람들의 중요한 연구 주제
Logic Gates
- AND/OR/NOT 만 있으면 모든 회로를 다 만들 수 있다(=Complete set)
- 사실은 여기 중에서도 AND/NOT 아니면 OR/NOT만 있어도 된다.
- Buffer는 input/output이 똑같은데 왜 필요하나? => logical하게 의미는 없지만 신호의 특성을 바꿔준다
- NAND가 중요한 게이트, 복잡해보이지만 만들기 쉬움. AND게이트를 만든 다음에 NOT을 붙인다(AND게이트보다 비용이 적게 듬), 수학적으로 문제를 풀 때는 Complete set(AND,OR,NOT)을 써야되지만 NAND게이트만 있으며 다 만들 수 있기 때문에 비용측면에서 많이 쓰인다
- NOR도 NAND랑 마찬가지.
- XOR: ODD function(1이 홀수개냐)으로 정의
- XNOR: EVEN function(1이 짝수개냐)으로 정의
Canonical Form(표준형식)
Minterm: 1을 위주로…, AND-OR
Maxterm: 0을 위주로…, OR-AND
Minterm으로 만들어야 비용을 적게 들일 수 있다
예를 들어, XOR 게이트를 다음과 같이 나타낼 수 있다
a b f 0 0 0 0 1 1 1 0 1 1 1 0 Minterm
1을 기준으로 표현하여 각 항을 +한다
1 | f = a'b + ab' |
- Maxterm
- 0을 기준으로 표현하여 각 항을 *한다
1 | f = (a+b) * (a'+b') |