[CS:APP/컴퓨터 시스템] 비트와 컴퓨터 시스템Computer Science/Computer System2025. 3. 22. 22:59
Table of Contents
반응형
이 글과 시리즈는 CMU CS:APP 컴퓨터 시스템 책과 대학 수업을 기반으로 작성되었습니다.
비트로 표현할 수 있는 것
- 정수
- 부동소수점( 소수점의 위치를 고정하지 않고 나타내는 수)
- 문자 / 문자열
- 명령어(Instruction)
- 주소(Address)
이진 인코딩
- 비트는 0과 1로 이뤄짐.
- 비트는 전기적으로 표현하기 쉬움
- 전압이 있으면 1, 없으면 0
- 숫자 1 -> 0x01
- 문자 '1' -> 0x31 ( ASCII )
- 문자열 "1" -> 0x3100 (null 문자)
부동소수점은 근사 방식이기에, \(15213_{10}\) 과 \( 1.5213 * 10^4\)는 다름
바이트
- 8 bit = 1 byte
- \(2^8 = 256 \)개의 데이터 표현 가능
- 이진수로 0000 0000 ~ 1111 1111
- 십진수로 0 ~ 255
- 16진수로 00 ~ FF
- 0~9, A~F
- 16진수는 0x 로 표현
- ex) 0xFF, 0xFF1B35
컴퓨터 시스템
구성
- CPU / RAM / HDD / BUS / MMU (in OS)
- CPU는 프로그램을 실행하기 위해 메모리로 부터 명령어와 데이터를 가져옴
- 한번에 하나씩 일을 처리함
- CPU는 컴파일 시점에 결정된 메모리의 Address(가상주소)로 데이터와 명령어를 가져옴
- CPU
- ALU -> 가감승제 작업 담당
- Program Counter -> 다음 명령어 주소를 갖고 있는 레지스터
- Memory Management Unit (MMU)
- OS에 있는 소프트웨어
- Virtual Address를 Physical Address로 변환
- 페이지는 \(2^{12}\) = 4096bytes = 4KB 사이즈
- 가상 메모리를 관리하는 최소 단위
- 페이지 테이블을 참고해서 변환
- Page Fault
- 프로세스가 접근하려는 메모리 페이지가 RAM에 존재하지 않는경우 발생
- 즉 가상 메모리 페이지에 접근하려는 경우 발생
- minor page fault -> 페이지 테이블만 업데이트 해주면 됨
- 이미 페이지가 메모리 내에 있으나, 테이블 업데이트가 안된경우
- major page fault -> swap 진행
- 진짜 없는 경우
- ROM vs RAM
- ROM은 Read only
- BIOS 나 Firmware 같은거 저장
바이트 메모리 구성

- 프로그램은 주소를 통해 데이터를 참조함
- 매우 큰 바이트 배열과 같음
- 연속된 주소를 갖고 있음
Addressing
- 32bit Addressing Space 기준 \(2^{32}\) 개의 주소를 갖고 있음
- 주소는 각 바이트를 가리킴
- 메모리당 1바이트를 Byte Addressable 하다 함
- 32bit address space에서 \(2^{32}\) 바이트 = 4GB 바이트.
- x86-64 에서는 48bit address를 지원
- \(2^{48}\) 바이트의 주소를 가질 수 있음
- 나머지 \(2^{16}\) 은 FF로 채워서 쓰지 않음.
- 주소는 Physical과 Virtual 주소가 있음.
- 주소는 unsigned integer임
- 모든 애플리케이션은 virtual address 사용함
Machine Word Size
- 모든 컴퓨터는 Word Size가 있음
- 프로세서가 한번에 처리할 수 있는 데이터 크
- 최근까지 대부분의 컴퓨터는 32비트를 word size로 사용(max 4gb)
- 이제는 64bit을 word size로 사용(max 18EB)
- 인텔은 레거시 때문에 16bit 사용
- 32bit = double word = DWORD
- 64bit = quad word = QWORD
반응형
@현주씌 :: 현주.로그
소프트웨어학과 현주씌의 일상을 담는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!