420 likes | 800 Views
[ 2014-1] 정보통신기초 Week 3 : 데이터의 조 작. 담당교수 : 최 윤 정. Chapt.2 데이터의 조작. 목차. 2.1 컴퓨터 구조 2.2 기계어 2.3 프로그램의 실행 2.4 연산명령 2.5 다른 장치와의 통신 2.6 기타 구조. 2.1 컴퓨터 구조. CPU 연산장치 제어장치 레지스터 버스 메모리 메인보드 디스크 . H/W 구성요소 . 기본레지스 터. 메인보드. 칩셋 (Chipset).
E N D
[2014-1] 정보통신기초Week 3 : 데이터의조작 담당교수 : 최 윤 정
Chapt.2 데이터의 조작 목차 • 2.1 컴퓨터 구조 • 2.2 기계어 • 2.3 프로그램의 실행 • 2.4 연산명령 • 2.5 다른 장치와의 통신 • 2.6 기타 구조
2.1 컴퓨터 구조 • CPU • 연산장치 • 제어장치 • 레지스터 • 버스 • 메모리 • 메인보드 • 디스크 ..
칩셋(Chipset) • 여러 칩과 회로가 모여 서로 연관된 기능을 수행하도록 설계된 제어 칩(chip)들의 조합(set) • 모든 전자제품에는 특수 목적용 칩셋이 들어 있음 • 컴퓨터, 휴대전화, 디지털 TV 등 • CPU 프로세서와 함께 시스템 전체를 제어 호환성! • 대개 메인보드 상에 몇 개의 제어 칩들로 구성 • 칩셋 내부 회로☞ CPU를 지원하는 각종 제어 장치들 • 버스 컨트롤러, 메모리 컨트롤러, I/O 컨트롤러, 인터럽트 컨트롤러, 타이머등 다양한 장치들
칩셋과ROM은 메인보드에 장착 칩셋 방열판으로 덮은 칩셋 롬 바이오스칩
데스크탑 컴퓨터의 메인보드 메모리 슬롯 CPU 소켓 전원 커넥터 배터리 I/O 포트 칩셋 I/O 확장 슬롯 I/O 커넥터 대만 기가바이트 motherboard (2013)
Quiz:빈칸채우기 전원 커넥터 메모리 슬롯 배터리 I/O 커넥터 CPU 소켓 칩셋 I/O 포트 I/O 확장 슬롯 대만 ASUSmotherboard (2013)
노트북의 메인보드 미국 AppleMacBook Air 13” (2013)
태블릿 컴퓨터의 메인보드 미국 AppleiPad Air (2013)
스마트폰의 메인보드 ① 미국 Apple iPhone 5s 메인보드 (2013)
스마트폰의 메인보드 ② 한국 Samsung Galaxy S4 메인보드 (2013)
컴퓨터 시스템의 동작 ※ 정보 : 명령어와 데이터로 구분 - 명령어 : 실행할 산술, 논리 연산 동작을 명시하는 문장. - 프로그램 : 작업 하나를 수행하기 위한 명령어 집합. • 컴퓨터 시스템 : 디지털 형태의 정보를 입력 받아 메모리에 저장된 명령어 목록(프로그램)에 따라 처리하고 결과를 출력하는 일종의 고속 전자계산기. • 1) 컴퓨터 시스템의 동작과정 • 아래와 같은 순서로 동작하며, 제어장치가 모든 동작을 제어한다. • 입력 장치를 통해 정보를 입력 받아 메모리에 저장한다. • 메모리에 저장한 정보를 프로그램의 제어에 따라 인출, 산술 장치나 논리 장치에서 처리한다. • 처리한 정보를 출력 장치에 표시하거나 디스크(보조기억장치)에 저장한다.
명령어 구성 [그림1-14] 명령어 구조의 간단한 예 [그림1-15] 메인 메모리에 저장된 명령어 예 • 연산 코드(Operation Code)와 오퍼랜드(Operand)로 구성. • 0과 1의 이진 코드화 되어 있으며 프로세서에 따라 길이가 달라짐. • 고정 길이 또는 기능에 따른 가변적 구성 가능. • 실행 전 메인 메모리에 저장, 한번에 하나씩 프로세서에 전송되어 해석 및 실행.
프로그램 내장(stored program) • 기존 : 데이터는 메모리에, 프로그램은 CPU에.. • 프로그램도비트패턴으로 인코딩되어 주기억장치에 저장될 수 있다. • CPU는 주기억장치에서 명령들을 읽어와서 실행할 수 있다. • fetch - execute • 또한 실행될 프로그램을 주기억 장치 안에서 쉽게 변경할 수도 있다.
기계 명령: CPU가 인식할 수 있도록 비트 패턴으로 인코딩된 명령 • 기계어(machine language): 기계가 인식할 수 있는 모든 명령의 집합 • 컴파일 과정 • SOURCE 파일 기계어 코드로 변환하는 과정.! • .c .o .exe • .java .class
CPU 구조에 대한 두 가지 철학– 양대 축 • RISC(Reduced Instruction Set Computing) • 최소의 기계명령어를 실행하도록 설계하자. • 단순하고, 빠르고, 효율적인 소수의 명령 • 예: Apple/IBM/Motorola의 PowerPC • CISC(Complex Instruction Set Computing) • 많은수의 복잡한 명령을 실행하도록 설계하자. 중복도 괜찮다.! • 편리하고 강력한 다수의 명령 • 예: Intel의 Pentium
명령어의 종류 • 데이터 전송: 한 장소에서 다른 장소로 데이터를 복사한다 • memmem , mem reg, regmem .. • 연산: 기존의 비트 패턴을 사용하여 새로운 비트 패턴을 계산한다 • and, or, add … • 제어: 프로그램 실행을 지시한다
주기억장치에저장된 값들로 덧셈하기 • + 3 5 • 단계 1. 덧셈에 사용될 값 중의 하나를 주기억장치에서 가져와 레지스터에 넣는다. • 단계 2. 덧셈에 사용될 또 다른 값을 주기억장치에서 가져와 또 다른 레지스터에 넣는다. • 단계 3. 단계 1, 2에서 사용된 레지스터들을 입력으로 사용하고 결과는 또 다른 레지스터에 저장하도록 덧셈 회로를 작동시킨다. • 단계 4. 결과를 주기억장치에 저장한다. • 단계 5. 멈춘다.
나눗셈연산 • / 6 3 ( 보통 , / 는몫을 % 는나머지를 구합니다) • 단계 1. 메모리에서 값 하나를 받아와서 레지스터에 LOAD하라. • 단계 2. 메모리에서 또 다른 값 하나를 받아와서 또 다른 레지스터에 LOAD하라. • 단계 3. 두 번째 값이 0일 경우, 단계 6으로 점프하여라. • 단계 4. 첫 번째 레지스터의 내용을 두 번째 레지스터의 나누어 얻은 몫을 세 번째 레지스터에 넣어라. • 단계 5. 세 번째 레지스터의 내용을 메모리에 STORE하라. • 단계 6. STOP.
기계명령어의 요소 • 명령 코드(op-code): 실행할 명령을 지정한다 • 피연산자(operand): 명령에 관한 추가 정보를 제공한다 • 피연산자에 대한 해석은 명령 코드에 따라 달라진다
부록 C : 12개의 기계어 보기 3번은 Store 기능: reg 내용을 mem(addr)
덧셈코드 (slide 22의기계어 표현) • 덧셈에 쓰일 operand가 각각 6c, 6d 에 들어있다고 가정 • 1 번 : load (mem(addr)->reg) • 5 번 : add • C(12)번 : halt.
간단한 명령어의예 • 3 6 8 A : • 3: store , reg memory • 6 : 레지스터코드 • 8A : 메모리 주소 • 즉, 6번 레지스터의 내용을 메모리주소 8A에 store. • 4 0 F 4 : • 4 : move (==copy) , reg reg • 0 : pass • F : F번 레지스터 4 : 4번 레지스터
프로그램의 실행 • 두 개의 용도 지정 레지스터로 제어 • 프로그램 카운터(PC): 다음 명령의 주소 • 명령 레지스터(IR): 현재 명령 • 기계 주기(machine cycle) • 인출(fetch) • 해석(decode) • 실행(execute)
B : JUMP • B 2 5 8 : • 2번 레지스터값과0번 레지스터값을 비교한다. • 같으면 메모리 주소 58번으로 JUMP! • 이제, 58 번에 있는 명령어가 인출되어 실행됨. • B 0 5 8 : • 비교할 레지스터가 0 이므로 언제나 항상 같음. • 따라서, 항상 58번으로 JUMP.
연산명령 • 논리 연산: AND, OR, XOR … • 마스킹(masking) : • AND : 비트패턴 중 임의의 값을 알아오거나, 변경 • OR : 비트패턴중 임의의 값을 1로 set 할 때.. • 예) 10101011 중하위 4bit만 가져올 때 • 00001111과 AND ______________________________ 결과 00001011 • 예) 10101011 중상위 4bit를 모두 1로 set할 때 • 11110000 과 OR ______________________________ 결과 11111011
연산명령 • 회전(rotate) 및 자리 이동(shift): • 회전식 자리 이동(circular shift) • 논리적 자리 이동(logical shift) : • 밖으로 나가는 비트는 버리고 빈자리는 0으로 채우자. • 왼쪽이동은 곱하기 • 오른쪽 이동은 나누기 효과 • 산술적 자리 이동(arithmetic shift) • 오른쪽 이동시에는 빈자리는 원래 있던 값으로 채운다. 예) -0xFFFF vs. 0xFFFF
연산명령 • 산술 연산: 덧셈, 뺄셈, 곱셈, 나눗셈 • 정확한 동작은 값들의 인코딩 방식에 따라 달라진다 • 2의 보수 • 부동소수점
다른 장치와의 통신 • 제어기(controller): 컴퓨터와 장치와의 통신을 처리하는 중개 장치 • 각 장치유형마다 전용 제어기가 존재함 • 범용 제어기: USB와 파이어와이어(FireWire) • 포트(port): 장치를 컴퓨터에 연결하는 지점 • 메모리 사상 (memory-mapped) I/O: CPU가 주변장치를 메모리 셀처럼 취급하며 통신하는 방식
다른 장치와의 통신 • DMA(Direct Memory Access): 제어기가 버스를 경유하여 주기억장치에 접근 • 폰노이만 병목현상: • 디스크에서 메모리로 데이터를 읽어오는 동안 (제어기가 담당) CPU는 다른 작업을 할 수 있다.! 즉, 동시에 두 가지 일을 할 수 있다.! • 그러나, 버스 사용권에 대한 경쟁으로 정체현상이 올 수 있다. • 핸드셰이킹(handshaking): • 컴퓨터 구성요소 사이의 데이터 전송 조정 과정 • 단방향vs. 양방향! • ‘상태단어’ 를 이용하여 장치들의 상태를 전송한다. • 예) 프린터의 상태단어 : 최하위비트 -용지걸림, 용지없음…
다른 장치와의 통신 • 장치들 사이의 통신을 처리하는 방식에 따라 • 병렬 통신(parallel communication): • 다중 통신 경로를 사용하여 비트들을 동시에 전송. • 빠르지만 복잡한 구조. • 직렬 통신(serial communication): • 단일 통신 경로를 사용하여 한 번에 한 비트씩 전송. • 단순한 회로.
통신 속도 • 측정 단위 • Bps: Bits per second • Kbps: Kilo-bps (1,000 bps) • 8Kb == 1kB , B = byte, b = bit • Mbps: Mega-bps (1,000,000 bps) • Gbps: Giga-bps (1,000,000,000 bps) • 대역폭(bandwidth): 최대 전송 속도
기타 컴퓨터 구조 • 처리율(throughput) 개선을 위한 기술: • 파이프라이닝(pipelining): 일련의 작업주기에 따라 단계를 중첩시키자. 쉬지 않도록. • 병렬 처리(parallel processing): 여러 개의 프로세서를 동시에 사용하자. • SISD(single instruction stream, single data stream): 병렬처리X • MIMD(multipleinstruction stream, multiple data stream): 여러 개의 프로그램이 각자 다른 데이터를 사용하여 수행됨 • SIMD(single instruction stream,multiple data stream) : 동일한 프로그램이 여러 데이터에 적용됨 • 자체적으로 Memory-cpu를 갖는 여러 개의 장치들을 묶자.
과제# • 단원 복습문제 : 4문제 • 4,5,7,8 • 사회적 논제 : • 4번 : 다른 누군가가 만들고, 유지하고 발생하는 문제를 고칠 것이기 때문에 개인이 기계의 내적 세부사항을 알 필요 없다는 개인의 태도는 윤리적으로 합당한가? • 컴퓨터의 경우와 자동차, 핵발전소의 경우..같은 생각인가? • 7번 : 오버플로우나절삭오차로 인해 발생하는 산술적 오류의 결과로 금융분야나 운항 시스템등에서 대형사고의 발생을 상상하는 것은 어렵지 않다. 이미지 저장 시스템에서 미세한 부분을 잃음으로 발생할 수 있는 결과는 무엇인가? 감시, 의료진단의 예로 생각해보자. • 처리단위의 문제 : 우주선 폭발사고의 원인 단위 해석이 달라서…. • 금융 계산시 : 1007원 89전 올림/버림