멀티플레서
https://m.blog.naver.com/asd7979/30109725011
ALU
https://opentutorials.org/module/2719/15503
1. 마이크로프로세서의 정의
마이크로프로세서
■ 컴퓨터의 산술논리연산기, 레지스터, 프로그램카운터, 명령디코더, 제어회로 등의 연산장치와 제어장치를 1개의 작은 실리콘 칩에 모아놓은 처리장치
■ 구성
◆ 산술논리연산기, 레지스터, 프로그램 카운터, 명령 디코더, 제어회로
■ 기능
◆ 주기억장치에 저장되어 있는 명령어를 인출하여 해독하고 실행
◆ 실행 결과를 다시 주기억장치에 저장
◆ 입출력 장치들과도 데이터 교환
마이크로프로세서의 응용
■ 마이크로컴퓨터, 군사용 무기, 가전제품 등 다양한 이용
■ 공정 제어 분야, 사무자동화기기 등
■ 여러 반도체 회사에서 개발하고 있어, 성능이 우수하면서 가격이 매우 저렴한 마이크로 프로세서가 많이 출시되고 있음
관련 용어
■ 레지스터 : 데이터를 기억하는 소규모 기억장치
■ ALU (Arithmetic Logic Unit) : 8비트 산술 및 논리연산장치
■ 멀티플렉서 (multiplexer: MUX) : 복수회로에서 입력되는 신호 중 어느 하나의 입력신호를 선택하여 출력회로에 실어 주는 기능을 수행하는 데이터 선택 논리회로
■ 인코더 (encoder) : 문자 체계를 컴퓨터에 맞게 변화시키는 회로(10진수를 2진수로 부호화) = 부호기
■ 디코더 (decoder) : 2진수로 코드화(부호화)된 정보를 다른 코드 형식으로 변환하는 해독회로 (2진수를 10진수로 변환) = 해독기
마이크로컴퓨터의 구성 (M-C) **필기시험 출제**
중앙처리 장치(CPU) + 메모리 + I.O 포트(장치)
중앙처리 장치(CPU) 3대요소 = 레지스터 + ALU + 제어장치
중앙처리장치 (CPU)
■ 컴퓨터 시스템 전체의 데이터 흐름을 제어
■ 메모리로부터 프로그램의 각 명령을 판독, 해석, 판단하여 실행하고, 다음에 실행해야 할 명령을 결정
CPU의 구성
ㄴ 레지스터
ㄴ 산술/논리 유닛 (ALU)
ㄴ 제어유닛
■ 레지스터 (Register)
◆ 데이터를 보관하는 조그만 메모리
◆ 프로그램의 실행 중 사용되며 고속 억세스가 가능
◆ 명령 레지스터, 번지 레지스터, 인덱스 레지스터, 누산기 (가감연산 결과 등을 일시 비축해 두는 장치)
■ 산술/논리 유닛 (ALU)
◆ 가산이나 승산 등의 산술 연산을 행함
◆ 레지스터 내의 값 사이에서 논리 연산을 행함
■ 제어유닛
◆ 명령의 해석과 실행에 필요한 컴퓨터 내부의 각 유닛사이의 데이터 흐름을 제어
◆ CPU의 내부연산이나 메모리억세스를 위한 신호 발생
기억장치 (Memory)
■ RAM (Random Access Memory) : 프로그램 실행 중 CPU가 읽고 쓰는 데이터나 명령을 보관하기 위해 사용
◆ DRAM (Dynamic RAM)
■ 미소 콘덴서에 전하를 축적하여 정보를 기억 - 크기가 아주 작다. 축방전. +전하 -전하로 충전
■ 전기를 모아서 정보를 기억하는 장치.
■ 콘덴서가 장전하므로 일정 시간마다 기억 내용을 다시 재생(Refresh : 다시 읽음)해 주는 재생회로가 필요
■ 처리속도는 느리나, 전력 소모가 적고 칩당 기억 용량이 매우 크며 가격이 저렴하다.
콘덴서
H L H L
1 0 1 0
이런 것들을 수천개 만들어 놓아야 한다.
콘덴서를 수천개 필요하다. 전하도 쬐끔 보관한다.
배터리는 외부에서 +에서 -로 흐르려고 한다.
공기중에 회로가 구성된다. 그리고 흐른다.
콘덴서가 방전되면 정보가 날라간다. (콘덴서 방식으로 정보를 기억)
그래서 리프레쉬를 해 주어야 한다. (이건 단점)
저가격, 전력소모 적고, 기억 용량이 크다(=> 처리속도 느림)
◆ SRAM (Static RAM)
■ 전원 공급이 유지되는 한 저장 내용을 계속 기억하는 RAM
■ 제어가 간단하고 고속이며 소용량 기억장치에 적함
■ 플립플롭 논리 게이트에 의한 기억 소작로 회로가 복잡하며 기억 밀도가 적고 전력소모가 크고 가격이 비싸다
■ Refresh가 불필요
■ ROM (Read Only Memory) : 비 휘발성 메모리로서 판독 전용 메모리로, CPU가 판독은 하지만 변경하지 않는 프로그램을 보관하는데 사용
◆ MASK ROM ex) 가요시디, 윈도우시디
■ 공장에서 대량주문으로 미리 쓰여져 나옴
■ 제조 후 쓰거나 지울 수 없다.
■ 단점 : 불량시 패기처분
◆ PROM (Programmable ROM) : OTP ROM (One Time Programmable Read Only Memory) 한 번 쓸수 있는 롬이 나옴.
■ OTP ROM으로 제작해서 이상이 없으면 -> MASK ROM으로 들어간다.
◆ EPROM (Erasable PROM) -> 지우고 다시 쓸수 있는 롬이 나옴(자외선).
사진참조 - 지워지지 않게 하기 위해 테이핑을 해 둔다.
◆ EEPROM (Electrically PROM) -> 지우고 다시 쓸수 있는 롬이 나옴(전기로).
E2PROM (E-스퀘어PROM) 지금 쓰고 있다
사실상 RAM이다. 롬이 램의 수준까지 오고 있다.
◆ Flash Memory : usb형태의 메모리의 총칭, ROM 중에 하나이다.
■ .
IC SOCKET
ic는 전기적인 충격, 열에 약함. 그래서 소켓을 써서 납땜을 하고 IC를 꼽는다.
나노기법이 들어가 아주 가늘다. 전류에 의한 열에 약하다.
H = 0.24I2Rt [cal] (전력X시간)
TEXTOOL IC를 넣고 체치면 고정이 된다.
EPROM ERASER (IC를 넣고 타이머 맞춰서 돌리면 자외선으로 지운다)
ROM WRITER (지금도 쓰고 있다) 지금은 장비에 묶여서 온다.
4. 수의 표현과 연산
프로그램에서 쓰는 진수
■ 10진수 (Decimal number)
◆ 일상 생활에서 수치를 표현하거나 계산할 때 0~9의 10개의 수
■ 2진수 (Binary number)
◆ 컴퓨터는 0, 1로 구성된 2진수를 사용
■ 8, 16진수 (Octal / Hexadecimal number)
◆ 2진법으로 표현하면 판독과 작성이 어렵고 번거로워 간단히 나타내기 위해 사용
10진법
■ 10진수 (Decimal number)
◆ 일상 생활에서 수치를 표현하거나 계산할 때 0~9의 10개의 수
0~9, 10 ... 98, 99, 100
10진수 일공(10), 일공공(100)으로 읽어야 한다.
0~9 (10진수의 밑수, 10개), 0~7 (8진수의 밑수, 8개), 0~15 (16진수의 밑수, 16개)
(3)10 -> 3(10)
(1010)2 -> 1010(2)로 쓴다.
2진법으로만 쓰면 작성이 길기 때문에 8진수, 16진수로 쓴다.
324(10) = (3 x 100) + (2 x 10) + (4 x 1)
= 3 x 10^2 + 2 x 10^1 + 4 x 10^0
1010(2) = 1 x 2^3 + 0 x 2^2 + 1 x 2^1 + 0 x 2^0 (가중치, 가중값을 적용한다라고 한다)
= 8 + 0 + 2 + 0
= 10 (10)
각 진법에서의 수의 표현
(표 참고)
한 자리 숫자로 표현하기 위해 A~F를 쓴다.
1101(2) -> 10진수로 표현
1101(2) = 1x2^3 + 1x2^2 + 0x2^1 + 2x1^0
= 8 + 4 + 0 + 1 = 13(10)
다음의 수를 10진수로 변환하라.
10101(2) = 1x2^4 + 0x2^3 + 1x2^2 + 0x2^1 + 1x2^0 = 16 + 0 + 4 + 0 + 1 = 21(10)
11011(2) = 1x2^4 + 1x2^3 + 0x2^2 + 1x2^1 + 1x2^0 = 16 + 8 + 0 + 2 + 1 = 27(10)
371(8) = 3x8^2 + 7x8^1 + 1x8^0 = 192 + 56 + 1 = 249(10)
145(8) = 1x8^2 + 4x8^1 + 5x8^0 = 64 + 32 + 5 = 101(10)
4AB(16) = 4x16^2 + 10x16^1 + 11x16^0 = 1024 + 160 + 11 = 1195(10)
AF(16) = 10x16^1 + 15x16^0 = 160 + 15 = 175(10)
거듭제곱 계산사이트 https://www.calculator.net/
10진수를 2, 8, 16진수로 변환
20(10) = 바꿀 진수로 10진수로 나눈다.
2)20 (10) 2)10 - 0 2)05 - 0 2)02 - 1 1 - 0 10100(2) |
2)17 (10) 2)08 - 1 2)04 - 0 2)02 - 0 1 - 0 10001(2) |
2)25 (10) 2)12 - 1 2)06 - 0 2)03 - 0 1 - 1 11001(2) |
8)24 (10) 3 - 0 30(8)
|
8)128 (10) 8)16 - 0 2 - 0 200(8) |
16)101 (10) 6 - 5 65(16) |
16)127 (10) 7 - F 7F(16) |
실수(정수+소수)의 진법변환
소수점이 있는 10진수를 2,8,16진수로의 변환은
◆ 정수부분은 해당 진수로 나누고
◆ 소수부분은 해당 진수로 곱한다.
0.625(10) -> 2진수로 변환
11.6875 -> 2진수로 변환
정수부분 : 1011(2) 나누어주 면 된다.
소수부분
0.6875
X 2
-------
1.375
... 11.6875(10) = 1011.1011(2)
9.25 (10) -> 2진수로 변환
정수부분 : 1001(2) 나누어주 면 된다.
소수부분
0.25 X 2 ----- 0.5 |
0.5 X 2 ----- 1.0 |
9.25(10) = 1001.01(2)
2진 소수를 10진수로 변환
0.101(2) -> 10진수로 변환
0.101(2) = 1x2^-1 + 0x2^-2 + 1x2^-3 = 1x(1/2^1) + 0x(1/2^2) + 1x(1/2^-3) = 1/2 + 0 + 1/8 = 0.5 + 0 + 0.125 = 0.625
2^-y = 1/2^y
비트 : 모든 신호에 대한 최소의 단위
메카니즘(기계) + 일렉트로닉스(전자)
기계를 움직이려 하니깐 전자나 전기가 필요하다.
기계를 움직이려 할때 불편한 부분이 있을때 기계파트에서 고친다.
서로 불편한 것이 있다.
이 두 부분을 알고 있는 사람이
수정이 쉬운쪽을 선택해서 작업하는 사람이
메가트로닉스 엔지니어다.
물리 수학... ===> 기계에서 , 전자에서 통신 통신에서 무선유선,,
'자동제어 > PC 제어' 카테고리의 다른 글
Visual C++ 6.0 단축키 (0) | 2020.05.14 |
---|---|
PC제어프로그램 4일차 (20.05.12) - Visual C++ 사용하기 (0) | 2020.05.12 |
PC제어프로그램 4일차 (20.05.12) - (0) | 2020.05.12 |
PC제어프로그램 3일차 (20.05.07) - 진수의 연산, 뺄셈 (0) | 2020.05.07 |
PC제어프로그램 3일차 (20.05.07) - 소수점 진법변환(8 <-> 2 <->16) (0) | 2020.05.07 |