컴퓨터 공학 20250526 수업 필기
<Byte Ordering: Little Endian and Big Endian Bus>
-Byte Ordering
1.little endian
-주로 Intel 계열 CPU에서 사용되며 다중 바이트 데이터(예:32비트 워드)에서 **LSB(가장 작은 단위 바이트)**가 작은 주소에, **MSB(가장 큰 단위 바이트)**가 큰 주소에 저장됨.
-장점 : 계산할때 메모리의 낮은 주소부터 연산 시작하기 용이하다.
2.Big Endian
-Motorola, 일부 RICS계열 CPU, 그리고 네트워크 프로토콜(네트워크 바이트 오더)에서 사용됨.
-MSB를 작은 주소에 저장하고, LSB는 큰주소에 저장됨.
-장점: 사람이 읽거나 네트워크 통신에서 데이터 표현에 유리하다
3.Nuxi Syndrome
-16비트 워드 기반 시스템 간 이식 이슈에서 유래된 용어
-Big -> Little 엔디언 전환 시, "unix"출력이 "unix"로 바뀐 사례가 발생했으며, 엔디언 문제로 인한 고장 현상을 지칭한다

<I/O device>
1. 키보드란?
컴퓨터에 문자 및 명령어를 입력하는 대표적인 입력 장치.
각각의 키에는 고유한 **스캔 코드(scan code)**가 부여됨.
2. 스캔 코드 (Scan Code)
키를 누르거나 뗄 때 생성되는 코드.
일반적으로 키보드에서 CPU로 인터럽트 요청과 함께 전송됨.
하나의 키에 대해 **누름(press)**과 떼기(release) 각각의 코드 존재.
예시)
A 키를 누르면: 0x1C
A 키를 떼면: 0xF0 0x1C
0xF0은 "키 릴리즈"를 의미하는 prefix
3. 키보드 인터페이스 동작 방식
-동작 과정
사용자가 키를 누름
키보드 내부 회로가 스캔 코드 생성
키보드 컨트롤러가 스캔 코드를 입력 버퍼에 저장
인터럽트 컨트롤러가 CPU에 인터럽트 요청
CPU가 해당 인터럽트를 처리하여 입력을 인식
4. 인터페이스 방식
PS/2 키보드: 전통적인 키보드 연결 방식. 스캔 코드 기반 처리.
USB 키보드: 최신 방식. 복잡한 프로토콜을 사용하지만, 내부적으로는 스캔 코드가 유지됨.
5. 키보드 관련 인터럽트
대부분 IRQ1 (인터럽트 요청 번호 1)을 사용
해당 인터럽트가 발생하면 운영체제는 키 입력을 처리함
<CPU summary>
1.CPU란:
-컴퓨터의 중앙 처리 장치로, 명령어를 해석하고 실행하는 역할
-일반적으로 산술 논리 연산(ALU), 제어 유닛(Control Unit), 레지스터(register)로 구성된다.
2.CPU내부구성요소
-ALU(산술 논리 연산 장치): 산술 연산과 논리연산(AND,OR 등)을 수행하는 장치
-제어유닛(Control Unit): 명령어를 해석하고 어떤 동작을 할지 제어한다. 메모리, 레지스터, ALU 등에 신호를 보내 동작 지시.
-레지스터(register): CPU 내부의 작고 빠른 메모리이며 명령어 실행에 필요한 데이터나 주소를 임시저장
3.명령어 실행 사이클 (instruction Cycle)
(1)가져오기(Fetch): 메모리에서 명령어를 가져옴.
(2)해독(Decode): 명령어를 해석함.
(3)실행(Execute): 명령을 실제 수행함.
(4)저장(Store): 연산 결과를 메모리나 레지스터에 저장한다
4,클럭 속도(Clock speed)
-CPU는 클럭 신호에 맞춰 작동
-단위: Hz(헤르츠)-보통 GHz(기가헤르츠) 사용
-클럭 속도가 높을수록 명령어를 더 빠르게 처리할 수 있음
5.CPU 성능에 영향을 주는 요소
-클럭 속도, 코어 수 (멀티코어), 캐시 메모리 용량, 명령어 집합 구조, 파이프라인, 슈퍼스칼라, 분기 예측 등 아키텍처 최적화
6.CPU와 메모리
-CPU는 메모리로부터 명령어와 데이터를 가져와 처리함.
-CPU와 메모리 사이의 속도 차를 줄이기위해 캐시(CPU Cache)사용함.