이더넷(Ethernet) 이란?

지역 네트워크(Local Area Networks, LANs)에서 사용되는 가장 일반적인 유형의 네트워크 기술이다. 1970년대 후반에 개발되어 널리 퍼졌으며, 이더넷을 통해 여러 컴퓨터, 프린터, 스캐너, 그리고 다른 네트워크 기기들이 서로 연결되어 데이터를 공유하고 통신할 수 있다. 이더넷 기술은 계속해서 발전해 왔으며, 초기의 수 Mbps(메가비트/초)에서 현재는 Gbps(기가비트/초) 단위의 속도로 데이터를 전송할 수 있게 되었다. 또한, 기술이 발전함에 따라 무선 이더넷(Wi-Fi)과 같은 기술도 등장하였다. 이더넷은 그 간편함과 비용 효율성 때문에 오늘날에도 여전히 많이 사용되는 네트워킹 기술이다.

 

 

이더넷은 결국 네트워크 프로토콜이며, 어떤 계층에서 주로 쓰일까?

이더넷(Ethernet)은 결국 네트워크 상에서 사용되는 프로토콜이다. 이 때 네트워크는 설계와 통신의 효율성을 위해서 여러 계층으로 나뉘어 있는데, 대표적으로 OSI 7계층이 있다. 이더넷은, OSI 모델의 하위 계층, 즉 물리 계층(Physical Layer)과 데이터 링크 계층(Data Link Layer)에서 주로 사용된다.

 

물리 계층에서 이더넷은 신호의 전기적, 물리적 표현을 다룬다. 즉, 데이터를 전기 신호로 변환하여 네트워크 케이블을 통해 전송하는 방법을 정의한다. 이 계층에서 사용되는 케이블 유형(예: 동축 케이블, 트위스티드 페어, 광섬유)과 신호의 전송 방식 등을 결정한다.

 

데이터 링크 계층에서는 프레임 구조MAC(Media Access Control) 주소를 이용하여 네트워크 내의 장치들 간의 데이터 전송을 관리한다. 이 계층은 데이터의 오류 검출 및 수정, 프레임의 조립과 분해, 흐름 제어와 재전송을 담당한다. 이더넷 프로토콜은 이 계층에서 CSMA/CD 접근 방식을 사용하여 여러 장치가 동일한 통신 채널을 공유할 수 있도록 한다.

 

이더넷은 이 두 계층을 통해 데이터의 물리적 전송과 네트워크 내 데이터 링크의 제어를 담당하며, 네트워크의 기본적인 연결과 데이터 전송 기능을 제공한다. 따라서, OSI 모델에서 이더넷은 주로 물리 계층과 데이터 링크 계층에서의 기술과 프로토콜로 구성되어 있다.

 

 

이더넷이 나르는 데이터 단위, 프레임(Frame)

이더넷은 네트워크상에서 데이터를 프레임(Frame)이라는 단위로 전송하기 위한 프로토콜이다. 이더넷 프레임은 네트워크 내에서 데이터의 전달을 담당하는데, 각 프레임은 출발지와 목적지의 MAC 주소를 포함하여 어떤 장치에서 어떤 장치로 데이터가 전송되어야 하는지 명시한다. 또한, 프레임 검사 순열(Frame Check Sequence, FCS)을 이용하여 데이터의 오류를 검출할 수 있으며, 이는 네트워크 통신의 신뢰성을 보장하는 데 중요한 역할을 한다.

 

이더넷은 이러한 프레임을 사용하여 데이터를 전송함으로써 네트워크 상의 다양한 장치들이 효과적으로 통신할 수 있게 해주며, 네트워크의 구성 및 관리를 간소화한다. 이더넷은 또한 여러 기기가 동시에 데이터를 전송할 때 발생할 수 있는 충돌을 관리하고, 필요한 경우 재전송을 수행하는 메커니즘을 제공한다. 이 모든 특성 덕분에 이더넷은 전 세계적으로 가장 널리 사용되는 네트워크 기술 중 하나가 된 것이다.

프레임의 구성요소

구성요소 이름 구성요소 설명 크기
Preamble (프리앰블) 이더넷 프레임의 시작 부분에 위치해서 데이터 프레임의 시작을 알리는 역할을 한다. 그를 위해 수신 장치의 리시버(clock synchronization) 클록과 동기화를 도와준다.

각 바이트는 '10101010' 패턴으로 이루어져 있으며, 이 패턴을 7번 반복하면 프리앰블의 전체 형태를 얻을 수 있다. 각 '10101010'은 이더넷 하드웨어에 의해 전송되는 전기적 신호의 변화를 나타내는데, 이 패턴을 통해 수신 장치는 데이터 프레임의 시작을 알리는 시작 프레임 구분자(SFD)가 나타나기 전에 자신의 클록을 송신 장치의 클록과 동기화시킬 준비를 한다.
7 bytes
SFD
(Start Frame Delimiter)
(시작 프레임 구분자)
프레임의 시작을 명확하게 구분하는 데 사용되며, 수신 장치가 프리앰블 패턴을 인식하고 클록을 동기화한 후 실제 데이터 전송이 시작되는 시점을 정확히 감지하도록 돕는다.

패턴은 
10101011 인데, 이 패턴 중 마지막 11이 중요한 역할을 하여 프리앰블의 반복되는 10101010 패턴에서 변화를 제공하고, 이를 통해 프레임의 시작점을 명확하게 하는 것이다.

SFD는 프레임의 
데이터 부분이 시작되는 시점을 수신 장치에 명확히 알려준다. 이는 네트워크 장비가 데이터 스트림 중에서 실제 유용한 데이터 부분을 정확히 식별하고 처리를 시작할 수 있도록 해준다. 프리앰블을 통해 수신 장치의 클록이 송신 장치의 클록과 동기화되었다면, SFD는 이 동기화 상태를 유지하며 실제 데이터 처리가 시작될 준비를 한다.
1 byte
Destination MAC
(도착지 MAC 주소)
이더넷 프레임이 도달해야 할 최종 수신 장치의 물리적 주소 6 bytes
Source MAC
(출발지 MAC 주소)
프레임을 보내는(송신) 장치의 물리적 주소 6 bytes
Type / Length 프레임 내부에 캡슐화된 데이터의 유형(예: IPv4, ARP 등) 또는 데이터 영역의 길이 2 bytes
Data and Padding 실제 전송할 데이터가 포함되며, 변동적인 길이를 갖는다. 즉, 최소 프레임 길이를 충족시키지 못할 경우 패딩 바이트를 추가하여 길이를 조절하는 것이다. (이더넷 프레임은 최소 64바이트 길이를 유지해야 한다.) 46-1500 bytes
FCS
(Frame Check Sequence)
(프레임 검사 순열)
데이터의 무결성을 검증하기 위해 사용되는 CRC 값 4 bytes

 

 

CSMA/CD

 

Carrier Sense Multiple Access with Collision Detection

 

이더넷 네트워크에서 데이터 전송 시 충돌을 감지하고 해결하는 프로토콜이다. 이더넷이 데이터 통신의 신뢰성과 효율성을 높이는 데 기여하는 핵심적인 개념이다.

 

앞선 프레임의 구성요소 중 하나인 FCS 와는 데이터를 안전하고 정확하게 전송하는 데 중요한 역할이라는 점에서는 공통점이 있지만 이 둘은 엄연히 차이가 있다. CSMA/CD는 프로토콜의 일부로서 데이터 전송 방법과 네트워크 내 충돌 관리를 정의한다. 이는 이더넷 프레임의 물리적 구성요소가 아니다. 그러나 FCS는 물리적인 이더넷 프레임의 구성요소로, 데이터 무결성을 검증하기 위해 사용되는 CRC 값을 포함한다.

 

작동방식은 다음과 같다.

 

1. Carrier Sense (캐리어 감지)

데이터를 전송하기 전에 네트워크 케이블의 신호를 감지하여 다른 장치가 현재 데이터를 전송 중인지 확인한다. 만약 매체가 사용 중이라면, 장치는 데이터 전송을 보류한다.

 

2. Multiple Access (다중 접근)

여러 장치가 동일한 네트워크 세그먼트에 접근할 수 있으며, 이들 모두가 데이터를 전송할 수 있는 권한을 갖는다. 각 장치는 매체의 상태를 확인하고 사용 가능할 때 데이터를 전송할 수 있다.

 

3. Collision Detection (충돌 감지)

데이터 전송 중 충돌이 감지되면, 해당 장치는 전송을 중지하고 임의의 시간을 기다린 후 재전송을 시도한다. 충돌이 감지되면, 관련된 모든 장치는 전송을 중단하고 무작위로 정해진 시간 동안 대기한 후 다시 전송을 시도한다.

 

 

 

그 외 이더넷이 데이터를 안전하고 정확하게 전송하는 방법

이러한 기술들은 네트워크의 신뢰성을 향상시키고, 효율적인 데이터 전송을 보장하는 데 중요한 역할을 한다.

 

 

1. Full-Duplex 모드

Full-Duplex 모드를 사용하면 CSMA/CD 프로토콜이 필요 없는데, 데이터를 동시에 양방향으로 전송할 수 있게 해주어 충돌이 발생하지 않기 때문이다. 이는 송신 채널과 수신 채널이 물리적으로 분리되어 있으며, 통신의 효율성을 크게 향상시키고 특히 고속 이더넷 환경에서 성능을 개선하는데 중요하다. 양방향 동시 통신이 가능하기 때문에, 각 장치는 상대방의 신호를 기다릴 필요 없이 계속해서 데이터를 송수신할 수 있다. (CSMA/CD는 하나의 채널에서 여러 장치가 데이터를 보낼 때 충돌이 발생할 수 있는 환경, 즉 Half-Duplex 환경에서 주로 필요하다.)

 

 

2. 이더넷 스위칭

이더넷 스위칭은 네트워크 내에서 데이터 패킷을 효율적으로 전송하고 분배하는 방식을 말한다. 이더넷 스위치는 네트워크의 중요한 기기로, 네트워크 내 여러 장치 간에 데이터 통신을 중계하고 관리한다.

 

이더넷 스위칭의 주요 기능은 다음과 같다.

 

프레임 전달

이더넷 스위치는 수신한 프레임의 MAC 주소를 확인하여 해당 프레임을 올바른 목적지로 전달합니다. 이 과정에서 스위치는 내부적으로 MAC 주소 테이블을 관리하여, 각 MAC 주소가 어느 포트에 연결되어 있는지 추적한다.


콜리전 도메인 분할

스위치는 각 포트별로 독립적인 콜리전 도메인을 생성한다. 이는 네트워크의 충돌 영역을 줄이고, 전체 네트워크의 효율성을 향상시킨다. 하나의 포트에서 발생하는 문제가 다른 포트나 장치에 영향을 주지 않도록 한다.


프레임 필터링 및 전달 결정

스위치는 수신된 각 프레임의 목적지 MAC 주소를 분석하여, 해당 프레임을 필요한 포트로만 전달한다. 이는 불필요한 트래픽을 제한하고, 네트워크 보안과 성능을 향상시킨다.

 

 

 

3. VLAN (Virtual Local Area Network)

VLAN은 하나의 물리적 네트워크 내에서 여러 개의 가상 네트워크를 생성할 수 있게 해준다. 하나의 물리적 네트워크 내에서 여러 개의 분리된 논리적 네트워크를 생성할 수 있으며, 이를 통해 네트워크의 관리, 보안, 성능을 향상시킬 수 있다.

 

VLAN 구현 방식은 다음과 같다.


태그 기반 VLAN (Tagged VLAN)

이더넷 프레임에 VLAN 식별자 (VLAN ID)를 포함시키는 방식이다. IEEE 802.1Q 표준이 이에 해당하며, 스위치는 태그를 해석하여 프레임을 적절한 VLAN에 전달한다.


포트 기반 VLAN (Port-based VLAN)

스위치의 포트마다 고정된 VLAN을 할당하는 방식이다. 연결된 디바이스는 자동적으로 해당 포트에 설정된 VLAN의 일원이 된다.

 

 

 

4. Quality of Service (QoS)

네트워크에서 데이터 트래픽을 관리하고 특정 종류의 트래픽에 우선순위를 부여하여, 네트워크 자원을 효율적으로 사용하고 사용자의 경험을 최적화하는 기술이다. QoS는 VoIP(음성 통신), IPTV, 비디오 스트리밍, 온라인 게임과 같이 실시간 성능이 중요한 서비스를 제공하는 데 필수적이다.

 

 

 

5. 링크 집계 (Link Aggregation)

링크 집계는 여러 개의 물리적 이더넷 연결을 논리적인 단일 연결로 묶어 처리량을 증가시키고, 연결의 신뢰성을 향상시킨다. 이 기술은 서버와 스위치 사이에 다중 연결을 설정하여, 하나의 연결에 문제가 발생하더라도 다른 연결을 통해 데이터 전송을 계속할 수 있게 한다.

 

ALU 명령어

ALU 명령어들은 모두 기계어로 해석될 때, 0번째 비트가 1이다.

ADD RA, RB RA와 RB를 더해서 RB에 연산 결과를 넣기
SHR RA, RB RA를 오른쪽 시프트한 후 결과를 RB에 넣기
SHL RA, RB RA를 왼쪽 방향으로 시프트하고 결과를 RB에 넣기
NOT RA, RB RA를 NOT 연산하고 결과를 RB에 넣기
AND RA, RB RA와 RB를 AND 연산하고 결과를 RB에 넣기
OR RA, RB RA와 RB를 OR 연산하고 결과를 RB에 넣기
XOR RA, RB RA와 RB를 XOR 연산하고 결과를 RB에 넣기
CMP RA, RB RA와 RB를 비교하고 결과를 RB에 넣기

 

로드/저장 명령어

로드 명령어: 램에 들어 있는 바이트 데이터를 레지스터로 이동할 때 사용한다. (기계어코드 0000)

저장 명령어: 레지스터에 들어 있는 바이트 데이터를 램으로 이동할 때 사용한다. (기계어코드 0001)

LD RA, RB RA가 가리키는 램의 주소에 들어 있는 데이터를 RB로 로드
ST RA, RB RB에 들어 있는 데이터를 RA가 가리키는 램의 주소에 저장

 

데이터 명령어

램의 어떤 주소에서 바이트 데이터를 하나 가져와서 레지스터에 로드하는 역할인데, 이렇게만 보면 로드 명령어와 차이점이 없어 보인다. 그러나 로드 명령어와 크게 다른 점은 데이터 명령어로 바이트 데이터를 가져오기 위해 지정하는 램의 주소는 로드 명령어에서 지정하는 주소와 다른 공간을 사용한다는 사실이다. (기계어코드 0010)

DATA RB, xxxx xxxx RB에 8비트 데이터 로드

 

레지스터 분기 명령어

특정 레지스터에 들어 있는 내용을 IAR로 옮기는 역할을 한다. (기계어코드 0011)

JMPR RB RB에 들어 있는 램의 주소로 분기

 

직접 분기 명령어

어떤 명령어를 실행하고 싶을 때 그 명령어가 있는 램의 번지수를 알고 있을 때 유용하다. (기계어 코드 0100)

JMP Addr 특정 램 주소로 직접 분기

 

단일 조건 분기 명령어

조건(플래그)에 맞으면 분기한다. (기계어코드 0101)

JC Addr 자리 올림이 발생하면 분기
JA Addr A>B이면 분기
AE Addr A=B이면 분기
JZ Addr 결과가 0이면 분기

J(Jump): 분기

C(Carry): 올림

A: A가 더 큼

E(Equal): 같음

Z(Zero): 연산결과가 0

 

복합 조건 분기 명령어

단일 조건 분기 명령어 들을 복합적으로 엮은 명령어 들이다. (기계어코드 0101)

 

플래그 레지스터 초기화 명령어

(기계어코드 0110)

CLF Flags의 모든 플래그 비트를 0으로 초기화

 

 

클록은 NOT 게이트로 만든다.

NOT 게이트로 연결을 하게 되면 계속해서 자기 자신을 부정하므로 0과 1을 반복할 것이다.

 

지연된 클록을 만드는 이유는?

그렇게 하지 않으면 너무 빨라져서 그렇다.

 

그냥 클록과 지연된 클록으로 새로운 클록 두 가지를 만들었다. 그 이유는 클록의 "완벽한 타이밍"을 위해서이다.

 

 

 

예시와 함께보기 (두 숫자를 더하는 일을 해보자)

 R0의 숫자와 R1의 숫자를 더해서 R0에 덧셈 결과를 저장하는 상황이 있다고 해보자. 덧셈 연산을 수행할 때는 2회 이상의 클록 사이클이 필요하다.

첫 번째 클록 사이클 동안 R1의 출력을 허가 (출력클록clk e = 1)
TMP 입력을 허가 (입력클록clk s = 1)

이렇게하면 R1의 데이터가 데이터 버스를 타고 TMP 안으로 들어가게 된다.
두 번째 클록 사이클 동안 R0의 출력을 허가 (출력클록clk e = 1)
ALU 연산의 종류를 ADD로 설정
ACC 입력을 허가 (덧셈 결과가 ACC에 저장)
세 번째 클록 사이클 동안 ACC 출력 제어 비트를 on (덧셈 결과를 R0 으로 보냄)

op 입력으로 여덟 가지 코드 조합을 선택할 수 있다. 이 중 7개는 특정한 산술 장치나 논리 장치를 선택하는 데 이용하지만, 마지막 코드 조합은 어떤 장치도 연결되어 있지 않으므로 아무런 바이트를 출력하지 못한다. 그러나 여덟 번째 연산을 선택해도 a>b 나 a=b 비트는 여전히 작동하기 때문에, 비교 연산만 수행하고 싶을 때 여덟 번째 코드 조합을 선택하면 된다. 참고로 op 코드의 의미는 다음과 같다.

000 ADD 덧셈 연산
001 SHR 오른쪽 시프트 연산
010 SHL 왼쪽 시프트 연산
011 NOT NOT 연산
100 AND AND 연산
101 OR OR 연산
110 XOR XOR 연산
111 CMP 비교 연산

 

 

 

라이브러리는 사용자 모드에서 동작하는 함수의 모임이다.

시스템콜은 커널모드(운영체제)에서 동작하는 함수의 모임이다.

 

  정적 라이브러리 (statically linked lib) 동적 라이브러리 (dynamically linked lib)
확장자 윈도우 .lib .dll
리눅스 .a .so
특징 프로젝트를 컴파일하는 과정에서 포함시키는 오브젝트 모양의 파일의 모임이며,
간단하다.
완성된 프로젝트를 런타임 시에 포함시키는 동적 라이브러리이며,
메모리 면에서 효율적이다.

컴퓨터 CPU의 종류에는 두 가지가 존재한다. 그것이 바로 CISC (Complex Intruction Set Computer) 와 RISC (Reduced Instruction Set Computer) 이다.

 

 

 

CISC (Complex Intruction Set Computer)

말 그대로 복잡한 명령어를 사용한다. 이 방식의 장점은 '하나의 명령어'로 '강력한 기능'을 구현할 수 있다는 점이며, 컴파일이 단순하여 컴파일된 프로그램의 크기가 작다는 것이다. 이 방식은 명령어의 길이가 가변적이고 하나하나의 명령어들이 묵직하기 때문에 복잡할 수 밖에 없다.

 

 

 

RISC (Reduced Instruction Set Computer)

반면, RISC의 경우 CISC에 비해 명령어들이 가볍다. 명령어의 길이가 고정적이고 또 제한된 포맷을 지니기 때문에 그렇다.

 

 

 

아키텍쳐 구분 CISC RISC
명령어 길이 다양함 (가변길이) 모두 동일한 길이 (고정길이)
명령어 종류 많음 적음
컴파일러 여러종류의 명령어로 복잡함 고정길이와 작은종류로 단순함
소프트웨어 의존성 작음 (cpu명령어 선에서 처리) 많음 (cpu에서 처리하지 못한 명령을 소프트웨어가 처리함)
메모리 적게 사용 많이 사용

 

 

>> 표 출처 : https://blog.naver.com/makeflood/222412112306

 

CPU 아키텍쳐 : CISC , RISC

CPU 아키텍처란 CPU내부의 명령어 처리 과정이 조화롭게 운영되도록 설계된 시스템이다. 그 시스템의...

blog.naver.com

 

 

 

 

>> (유용한) 참고 링크

https://kldp.org/node/56072

 

[컴퓨터구조론] CISC , RISC 장단점 비교 | KLDP

CISC(Complex Instruction Set Computer) 모든 고급언어 문장들에 대해 각각 기계 명령어가 대응되도록 하는것 RISC(Reduced Instruction Set Computer) CISC의 많은 명령어중 주로 쓰이는것만을 추려서 하드웨어로 구

kldp.org

 

기억장치와 중앙처리장치가 버스로 연결되어 있으며, 순차적으로 연산을 수행하는 전통적인 컴퓨터 설계기법을 의미한다. 명령어와 데이터 메모리의 구분이 없는 것이다. 폰노이만 아키텍처는 현대 컴퓨터의 시작이라고도 볼 수 있다. 

1비트 가산기

a b 자리 올림
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

 

 

 

2비트 가산기

자리 올림
입력
a b c d e 자리 올림
출력
0 0 0 0 0 0 0 0
0 1 1 0 0 1 0
1 0 1 0 0 1 0
1 1 0 0 1 0 1
1 0 0 0 0 0 1 0
0 1 1 1 0 0 1
1 0 1 1 0 0 1
1 1 0 0 1 1 1

자리 올림 입력이 0 일시에는, 올림 수가 존재하지 않는 가산이라는 의미이다. 그렇게 되면 d의 결과는 항상 0이 된다. 그러면 자연스럽게 1비트 가산기의 역할만을 하게 되는 것이다. 반면, 자리 올림 입력이 1 일시에는, 올림 수가 존재하는 가산이라는 의미이다. 그렇게 되면 d의 결과는 a, b의 합을 끝낸 결과와 자리올림수 1의 값으로 다시 1비트 가산이 시작된다. 2비트 가산기는 그런식으로 짜여있다.

2비트 가산기 (단순화)

 

 

 

8비트 가산기

8비트 가산기는 2비트 가산기를 엮어 만들었다. 이런 형태로라면 255비트, 혹은 그이상도 연산을 수행할 수 있다.

8비트 가산기 (단순화)

CPU가 일을 처리하기 위해서는 연산을 수행해야 한다. 이러한 연산은 CPU 내부에서 바이트 단위로 처리를 해야한다. 그렇다면, 구체적으로 어떻게 일을 처리하는 것일까? 그 것을 위해서 CPU 내부에는 다양한 장치들이 존재한다.

 

 

 

하나의 레지스터에서 다른 레지스터로 바이트를 이동할 때 바이트 안에 들어 있는 내용물, 즉 '데이터'를 바꿀 수 있는 세 가지 연산 장치들

 

 

비트 시프트 장치 (bit-shift device)

비트 시프트 장치 (단순화)
(좌) 왼쪽 비트 시프트 장치 (우) 오른쪽 비트 시프트 장치

만약 시프트 출력과 시프트 입력이 연결되어 있다면, 재귀형식으로 말단에서 시프트되어 사라지는 비트가 시프트되어 또 다른 말단으로 들어오는 입력 비트로 추가될 것이다.

 

 

인버터 (inverter)

인버터 (단순화)

 

 

제로 검사기

 

 

 

 

 

바이트 데이터를 2개 입력해서 어떤 상호 작용을 거친 후 새로운 바이트를 출력할 수 있는 네 가지 연산 장치들

 

 

AND 장치

AND 장치 (단순화)

AND 장치는 여러 군데 쓰일 수 있지만, 하나만 소개하자면, 어떤 아스키 문자 코드를 대문자로 변환할 때 사용한다. 아스키 코드의 모든 알파벳 대문자와 소문자는 (의도적으로) 세 번째 비트의 부호만 다르게 구성되어 있다. 따라서 AND 장치를 이용하면 모든 알파벳 문자를 쉽게 대문자로 변환할 수 있다. 예를 들어, 알파벳 'e'를 나타내는 코드는 0110 0101 이고 대문자 'E'를 나타내는 코드는 0100 0101이다. 따라서 두 알파벳을 AND 하게 되면 대문자 코드인 0100 0101이 된다.

 

 

OR 장치

OR 장치 (단순화)

OR 장치도 여러 군데에서 쓰일 수 있지만, 앞서 설명한 AND 장치가 하는 일의 반대의 역할을 할 수도 있다. 알파벳 대문자 E를 나타내는 코드는 0100 0101인데, 이때 이 글자를 알파벳 소문자 e를 나타내는 코드인 0110 0101로 바꾸고 싶다면 0010 0000 이라는 비트 패턴과 함께 OR 연산을 수행하면 된다. 아스키코드의 알파벳 대문자와 소문자가 세 번째 비트의 부호만 다르게 설계되어 있기 때문에 OR 장치를 이용하면 쉽게 알파벳 대문자를 소문자로 변환할 수 있다.

 

 

XOR 장치

XOR 장치 (단순화)

XOR 장치는 서로 다른 어떤 두 개의 코드가 서로 같은지 다른지를 판별할 수 있다. 만약, 같은 비트 패턴이 들어 있다면 XOR 장치에 넣었을 때의 결과는 0000 0000 일 것이다.

 

그런데, XOR 장치로도 충분히 두 코드가 같은지 다른지를 판별할 수 있지만, 이를 담당하는 장치가 하나 더 있다. 그것은 바로 비교기이다.

비교기

1비트 비교기

다만, XOR 장치가 1바이트 크기의 출력을 다루는 반면, 비교기는 1바이트 크기가 아닌 오직 2비트 크기로 된 출력을 생성하는 장치이다. 비교기의 기능은 크게 세 가지 인데, 버스에서 들어오는 1바이트 입력 2개가 정확히 같은지 판단하는 능력, 입력 2개가 다른지 판단하는 능력, 입력이 다르다면 버스 입력 a로 들어온 데이터가 버스 입력 b로 들어온 데이터보다 이진수로 큰 수인지 판단하는 능력이다.

바이트 비교기

 

바이트 비교기 (단순화)

 

 

가산기

https://jinn-o.tistory.com/144

 

[논리회로] 가산기

1비트 가산기 a b 합 자리 올림 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 2비트 가산기 자리 올림 입력 a b c d e 합 자리 올림 출력 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1..

jinn-o.tistory.com

+ Recent posts