#computer-architecture
노트 20개
Computer Science
컴퓨터 구조, 운영체제(프로세스·메모리·파일), 네트워크(TCP·HTTP), 데이터베이스, C와 기초 자료구조, 정보처리기사 개념까지 개발의 바탕이 되는 CS 지식 모음.
Computer Science › C Programming
호출 규약과 스택 프레임함수 호출이 기계어 수준에서 어떻게 이루어지는지 정리한다. 스택 프레임과 프롤로그·에필로그, 스택이 자라는 방향을 확인하는 법, cdecl과 System V AMD64 같은 호출 규약, 가변 인자 함수(va_list)가 동작하는 원리, 꼬리 호출 최적화.
Computer Science › C Programming
C 저수준 최적화컴파일러가 이미 해 주는 최적화와 프로그래머가 힌트로 도울 수 있는 부분을 구분한다. switch를 룩업 테이블·점프 테이블로 바꾸는 원리, 분기 예측 힌트(__builtin_expect, [[likely]]), 도달 불가 힌트, SIMD 내장 함수, memset 같은 라이브러리 함수를 직접 최적화하지 말아야 하는 이유.
Computer Science
컴퓨터 구조CPU, 메모리, 입출력 장치가 어떻게 구성되고 협력해 프로그램을 실행하는지, 그리고 현대 CPU의 비순차 실행·분기 예측·캐시가 코드 성능에 어떤 영향을 주는지 다루는 분야.
Computer Science › Computer Architecture
기본 컴퓨터 프로그래밍기본 컴퓨터의 기계어와 어셈블리 언어, 의사 명령어, 2-pass 어셈블러, 그리고 루프·곱셈·서브루틴·입출력을 어셈블리로 작성하는 방법.
Computer Science › Computer Architecture
기본 컴퓨터의 구조와 설계교재의 16비트 기본 컴퓨터를 예로 명령어 형식과 직접·간접 주소, 레지스터와 공통 버스, 명령어 종류, 타이밍과 명령어 사이클, 입출력과 인터럽트, 하드와이어드 제어 장치 설계와 마이크로프로그램 제어(제어 메모리, 주소 시퀀싱)를 정리.
Computer Science › Computer Architecture
데이터의 표현컴퓨터가 숫자와 문자를 비트로 저장하는 방식: 진법과 변환, KB와 KiB, 워드 크기와 32비트·64비트의 차이, 문자 코드, 보수와 부호 확장, 고정·부동 소수점(IEEE 754 단정밀도·배정밀도의 범위와 특수값), 패리티와 해밍 코드.
Computer Science › Computer Architecture
디지털 논리 회로와 부품디지털 컴퓨터의 구성과 2진을 쓰는 이유, 트랜지스터로 만든 논리 게이트와 NAND·NOR 범용 게이트, 부울 대수와 정규형, 카르노 맵 간소화, 조합 회로(가산기·BCD 가산기·비교기·디코더·우선순위 인코더·MUX·DEMUX·코드 변환기·패리티)와 디코더·MUX로 함수 만들기, 래치와 플립플롭(특성식·여기표), 멀티바이브레이터와 555 타이머, 순차 회로 설계(타이밍, 무어·밀리 머신, 상태도에서 입력식까지), 시프트 레지스터와 링·존슨 카운터, 리플·동기·mod-N 카운터와 분주기, 셀 행렬로 짠 RAM과 ROM, 집적회로의 규모와 논리군, 게이트의 전기적 특성과 프로그래머블 논리 소자.
Computer Science › Computer Architecture
레지스터 전송과 마이크로 연산레지스터 전송 언어(RTL), 버스와 3-상태 버퍼, 메모리 읽기·쓰기, 산술·논리·시프트 마이크로 연산과 이를 구현하는 가산기·감가산기 회로.
Computer Science › Computer Architecture
메모리 계층 구조레지스터부터 디스크까지 속도·용량·가격이 다른 저장 장치를 계층으로 묶는 구조(계층별 지연 시간의 자릿수)와 RAM의 종류(SRAM·DRAM의 셀 구조, DRAM의 행·열 접근 타이밍과 순차 접근이 빠른 이유, NUMA), 칩을 병렬·직렬로 이어 만드는 기억장치 모듈, 하드 디스크·플래시 메모리(셀 원리, NOR·NAND, SSD와 FTL), RAID(작은 쓰기 문제), 연관 메모리.
Computer Science › Computer Architecture
부동소수점 오차: 반올림·비교·누적0.1 + 0.2가 0.3이 아닌 이유는 2진 부동소수점이 0.1을 정확히 담지 못하기 때문이다. 반올림 오차가 생기는 세 가지 원인, 반올림 모드, ulp와 상대 오차, 같음 비교를 상대 오차로 하는 법, 덧셈·뺄셈에서 오차가 커지는 흡수·상쇄와 Kahan 합산, 돈을 위한 decimal 타입을 정리한다.
Computer Science › Computer Architecture
입출력 구조와 시스템 버스CPU와 주변 장치를 잇는 입출력 인터페이스와 장치 드라이버, 전송 방식(프로그램 I/O·인터럽트·DMA), 인터럽트 우선순위, 레지스터를 직접 읽고 쓰는 입출력 예(AVR), 시스템 버스의 선·대역폭·동기식과 비동기식, 병렬·데이지 체인·폴링 버스 중재, 직렬 통신.
Computer Science › Computer Architecture
캐시 메모리와 MMU캐시의 주소 매핑(연관·직접·집합 연관)과 쓰기 정책, 그리고 하드웨어 관점에서 MMU가 맡는 재배치·공유·보호와 세그먼트 보호 필드.
Computer Science › Computer Architecture
캐시를 고려한 코드프로그래머가 캐시를 직접 제어할 수 없는 대신 접근 패턴으로 성능을 끌어내는 방법. 캐시 라인과 하드웨어 프리페처, 행렬 곱의 전치·블로킹, 배열과 연결 리스트의 실제 차이, 넌템포럴 저장과 쓰기 결합 버퍼, 캐시 일관성(MESI)과 거짓 공유, TLB shootdown, 캐시 효과를 걸러 내는 마이크로벤치마크 방법을 정리한다.
Computer Science › Computer Architecture
컴퓨터 산술 연산CPU가 다루는 데이터 형식별 덧셈·뺄셈 하드웨어 알고리즘, 시프트와 덧셈·뺄셈으로 하는 곱셈·나눗셈, 부동 소수점 연산, BCD 십진 연산.
Computer Science › Computer Architecture
컴퓨터 시스템의 기본 구성ENIAC에서 프로그램 내장 방식, 집적회로를 거쳐 CPU·메모리·저장 장치로 이루어진 현대 컴퓨터의 기본 구조.
Computer Science › Computer Architecture
파이프라인과 병렬 처리플린 분류, 파이프라인의 원리와 해저드 해결법, 벡터 처리와 메모리 인터리빙, 다중 프로세서의 병렬 처리 단위·메모리 접근 모델(UMA·NUMA·NORMA)·시스템 구성(SMP·MPP·CC-NUMA·클러스터)·상호연결망과 토폴로지.
Computer Science › Computer Architecture
현대 CPU의 마이크로아키텍처교과서의 5단계 파이프라인과 달리 현대 x86·ARM 코어가 명령어를 μop으로 쪼개 비순차·슈퍼스칼라로 실행하는 구조. 프런트엔드(디코더·μop 캐시·LSD), 재정렬 버퍼와 예약 스테이션, 실행 포트와 포트 압력, 분기 예측과 분기 없는 코드, SMT를 정리한다.
Computer Science › Computer Architecture
CPU와 명령어 구조소스 코드가 명령어가 되는 과정, CPU 내부(ALU·제어장치·레지스터), 명령어 형식과 주소 지정 방식, 플래그, 서브루틴과 인터럽트, ISA와 RISC·CISC의 차이.
Computer Science
컴퓨터의 역사: 무엇이 무엇을 대체했나주판·기계식 계산기에서 범용 기계의 구상, 릴레이→진공관→트랜지스터→집적회로로 이어진 스위치의 세대교체, 무어의 법칙과 2026년의 미세화 한계, 프로그램을 넣는 수단의 변천, 튜링 머신과 정지 문제, 개인용 컴퓨터가 보급된 조건을 「앞 단계의 어떤 병목을 풀었나」로 정리한다.