제 1 강 컴퓨터의 구조
학습 내용 컴퓨터의 구조, bottom-up 작동 원리 컴퓨터의 명령어 고 수준 언어
컴퓨터의 구성 Memory CPU 공장 창고 도로 Bus
범용 컴퓨터의 구성 요소 CPU 캐쉬(Cache) Main memory 2차 저장 장치: Hard Disk 입력 장치(KBD, Mouse) 출력 장치(모니터) 기타 주변 장치(Modem, Sound, printer, etc)
계산 모델 컴퓨터가 하는 일: 1. 계산 2. CPU로 데이터 가져오기, 3. 메모리로 데이터 가져가기 2 4 2 5 4 3 6
Quiz01_01
“컴퓨터”란 넓은 의미: Anything that can “compute” abacus (주판), 기계식 계산기, 계산자 calculator, analog computer 좁은 의미: Electronic Digital Binary (이진) Stored-program computer
Why Electronic? Faster than “mechanical” Faster than “electro-mechanical” Uses less energy
Quiz01_02
Why digital? 대략 이만해 38 cm 야.
다음 중 복사해도 음질이 떨어지지 않는 것은?
Quiz 01_03
Why Binary? 0 1 2 3 4
Quiz 01_04
Why “Stored program” ? 나중에...
바닥부터 본 컴 구조
Binary digit = bit 저장 방법?
1 비트 레지스터 =컴퓨터의 “뇌세포” 0 또는 1이 들어있다 바꿀 수 있다 알아낼 수 있다 입/출력 1 or 0 입력선 출력선 활성화 바꿀 수 있다 알아낼 수 있다
1비트 레지스터의 작동 ? 1
1비트 레지스터의 작동 1=입력 ? 1
1비트 레지스터의 작동 1=입력 ? 1 1
1비트 레지스터의 작동 1=입력 1 1 1
1비트 레지스터의 작동 0=출력 1 1
1비트 레지스터의 작동 0=출력 1 1 1
레지스터 복사 0=출력 1=입력 1 1
레지스터 복사 0=출력 1=입력 1
4-비트 레지스터 입-출력 입력 버스 출력 버스 활성화
집과 방과 주소 분당구 구미동 삼성 아파트 123동404호 건물단위까지만 주소가 있다면? xxx 아파트 123동 방단위까지도 주소가 있다면? xxx 아파트 123동404호3방
CPU와 메모리 . . . 메모리 CPU 버스: 8가닥 8비트 컴퓨터 활성화선 입/출력 레지스터 계산회로 0번지 1번지 버스: 8가닥 8비트 컴퓨터 . . . 0번지 1번지 2번지 3번지 ... 레지스터 메모리 계산회로 활성화선 15번지 CPU 입/출력
Quiz 01_05
워드의 크기 “워드 프로세서”의 뜻이 아님 워드 크기 =레지스터의 크기 (비트 수) =메모리의 입/출력 단위 =버스의 크기 (선 갯수) * 경우에 따라 다를 수도 있음 Apple II – 8 비트 최초의 IBM-PC – 16 비트 pentium – 32비트 itanium, opteron – 64비트
컴퓨터의 주소 바이트 단위까지 주소가 있음 실제 데이터의 이동 단위는 워드 단위 워드가 2바이트 이상이면 바이트를 어떻게 가져오나? 가져다가 나머지는 버린다.
외장 프로그램 컴퓨터 프로그램 = 단계별 할 일 및 순서 컴퓨터의 모든 작동은 외부에서 통제 프로그램은 “컴퓨터”의 외부에 존재 일부 고급 계산기는 수식을 미리 입력가능 (外藏)
Q01_06
내장 프로그램 컴퓨터 Stored-program Computer = Von-Neuman Computer 단계별 할 일을 컴퓨터 안에 저장해 놓음 = 프로그램이 내장(內藏)됨 = 내장 프로그램 컴퓨터 프로그램이 내장된 곳: 메모리
내장 프로그램 컴퓨터의 구성 IR(Instruction Register): 수행할 명령을 임시 저장하는 CPU내의 레지스터 PC(Program Counter): 프로그램 중에서 바로 다음에 수행할 명령이 저장된 번지수를 가리키는 레지스터 ALU(Arithmetic and Logic Unit): 실제 덧셈, 곱셈 등을 수행하는 전자회로
내장 프로그램 컴퓨터의 작동 전원을 켜면 PC는 0이 됨 PC에 있는 주소에 해당하는 메모리 부분을 활성화 이 부분은 IR로 읽어 옴 PC를 워드 크기 만큼 증가 시킴 (ALU를 이용)IR에 있는 명령어를 수행 2단계로 감
컴퓨터의 명령어 3 종류: 데이터를 복사하기 (data movement) 메모리 ↔ 레지스터 레지스터 ↔ 메모리 레지스터 ↔ 레지스터 덧셈, 곱셈 등의 계산 (arithmetic/logic) 다음 명령어 위치를 바꾸기(branch) 이진수로 되어 있어 이해가 어려움 예: 10101101 00101001 0100 0110 1000 0000
Q01_07
어셈블리 언어(assembly language) 기계어를 알기 쉽게 기호로 나타냄 기계어 명령과 1:1 대응 기계어의 예 어셈블리어의 예 프로그램주소 명령어 사용 데이터 00401028 mov dword ptr [ebp-4],1 0040102F mov dword ptr [ebp-8],64h 00401036 mov eax,dword ptr [ebp-4] 00401039 add eax,dword ptr [ebp-8] 0040103C mov dword ptr [ebp-4],eax 11000111
고 수준의 명령어 두개의 워드를 각각 A와 B라고 하자. A와 B의 위치는 어디라도 상관 없다. A워드에는 1을 넣고 int A, B; A = 1; B = 100; A = A + B;
기계어만 아는 컴퓨터 int A, B; A = 1; B = 100; A = A + B; 컴파일러가 번역 어셈블러가 번역 프로그램주소 명령어 사용 데이터 00401028 mov dword ptr [ebp-4],1 0040102F mov dword ptr [ebp-8],64h 00401036 mov eax,dword ptr [ebp-4] 00401039 add eax,dword ptr [ebp-8] 0040103C mov dword ptr [ebp-4],eax int A, B; A = 1; B = 100; A = A + B; 컴파일러가 번역 어셈블러가 번역 00401028 C7 45 FC 01 00 00 00 C7 00401030 45 F8 64 00 00 00 8B 45 00401038 FC 03 45 F8 89 45 FC F0 00401040 5E 5B 8B E5 5D C3 CC CC
Q01_08
역사 ENIAC: Pennsylvania 대학 6~70년대: mainframe 7~80년대: Minicomputer 80년대 Personal Computer 등장, 최초 IBM PC: 8086, 16bit, 8MHz 최근의 IBM PC: Pentium IV, 32bit, 3.2 GHz clock
범용 컴퓨터의 구성 요소 CPU 캐쉬(Cache) Main memory 2차 저장 장치: Hard Disk 입력 장치(KBD, Mouse) 출력 장치(모니터) 기타 주변 장치(Modem, Sound, printer, etc)
25년 전 데이터 카드
복습 1 컴퓨터의 세포에 해당하는 것은? 레지스터 기계어- 1과 0으로 된 명령어 어셈블리어 – 기계어와 1:1 대응되는 명령어 어셈블러(assembler) –어셈블리어를 기계어로 번역 고수준 언어: C, Java, Basic 컴파일러: 고수준 언어를 기계어 또는 어셈블리어로 번역
컴퓨터가 실행할 명령어의 순서가 컴퓨터 안에(기억장치에) 들어있는 컴퓨터 복습 2 컴퓨터 명령어의 세가지 종류 data movement: 데이타의 이동 (사실은 복제) 연산(+ - % X ) jump 실행할 명령어의 순서 바꾸기 내장 프로그램 컴퓨터: 컴퓨터가 실행할 명령어의 순서가 컴퓨터 안에(기억장치에) 들어있는 컴퓨터
1강 끝.