라즈베리 파이로 배우는 컴퓨터 아키텍처
도서명:라즈베리 파이로 배우는 컴퓨터 아키텍처
저자/출판사:에반,업튼,제프,듄트만,랄프,로버츠,팀,맴토라,벤,에/위키북스
쪽수:512쪽
출판일:2017-11-30
ISBN:9791158390877
목차
▣ 01장: 새로운 컴퓨터의 등장
새콤한 라즈베리의 변신
단일 칩 시스템
신용카드 크기의 컴퓨터가 가진 능력
라즈베리 파이의 역할
라즈베리 파이 보드 소개
- GPIO
- 상태 LED
- USB 포트
- 이더넷 연결
- 오디오 출력
- 컴포지트 비디오
- CSI 카메라 모듈 커넥터
- HDMI
- 마이크로 USB 전원
- SD 카드
- DSI 디스플레이 연결
- 장착용 구멍
- 메인 칩
라즈베리 파이의 미래
▣ 02장: 다시 보는 컴퓨터 개론
컴퓨터와 요리사의 비유
- 재료가 곧 데이터
- 기본 동작
계획을 따르는 상자
- 하는 것과 아는 것
- 프로그램이 곧 데이터
- 메모리
- 레지스터
- 시스템 버스
- 명령 집합
전압, 숫자, 의미
- 이진수: 1과 0으로 세기
- 숫자가 부족해
- 세기와 매기기, 그리고 0
- 이진법을 간소화하기 위한 16진법
- 이진수와 16진법 연산 방법
상자의 주인, 운영체제
- 운영체제의 역할
- 커널
- 다중 코어
▣ 03장: 전자 메모리
컴퓨터 이전에 메모리가 있었다
회전식 자기 메모리
자기 코어 메모리
- 코어 메모리의 작동 방식
- 메모리 액세스 시간
정적 RAM(SRAM)
주소 라인과 데이터 라인
메모리 칩에서 메모리 시스템으로
동적 RAM(DRAM)
- DRAM의 작동 원리
- 동기식 및 비동기식 DRAM
- SDRAM의 행, 열, 뱅크, 랭크, DIMM
- DDR, DDR2, DDR3, DDR4
- 오류 정정 부호(ECC) 메모리
라즈베리 파이 메모리 시스템
- 저전력 기능
- BGA 패키징
캐시
- 참조 국부성
- 캐시 계층 구조
- 캐시 라인과 캐시 매핑
- 직접 매핑
- 연관 매핑
- 집합 연관 캐시
- 캐시에서 메모리로 쓰기
가상 메모리
- 가상 메모리 이해하기
- 가상과 실제의 매핑
- 메모리 관리 유닛
- 다중 레벨 페이지 테이블과 TLB
- 라즈베리 파이의 스왑 문제
- 라즈베리 파이 가상 메모리 확인하기
▣ 04장: ARM 프로세서와 단일 칩 시스템
CPU의 놀라운 축소 과정
- 마이크로프로세서
- 트랜지스터 예산
디지털 논리 기초
- 논리 게이트
- 플립플롭과 순차 논리
CPU의 내부
- 분기와 플래그
- 시스템 스택
- 시스템 클록과 실행 시간
- 파이프라인
- 파이프라인 자세히 살펴보기
- 파이프라인 해저드
- ARM11 파이프라인
- 슈퍼스칼라 실행
- SIMD
- 엔디****
CISC와 RISC
- RISC의 유산
- 확장된 레지스터 파일
- 로드/저장 아키텍처
- 직교적인 기계어 명령
- 명령 캐시와 데이터 캐시의 분리
ARM의 태동
- 마이크로아키텍처, 코어, 제품군
- 라이선스 사업 모델
ARM11
- ARM 명령 세트
- 프로세서 모드
- 모드와 레지스터
- 고속 인터럽트
- 소프트웨어 인터럽트
보조 프로세서
- ARM 보조 프로세서 인터페이스
- 시스템 제어 보조 프로세서
- 벡터 부동 소수점(VFP) 보조 프로세서
- 에뮬레이션 보조 프로세서
ARM 코어텍스
- 다중 발행 및 비순차적 명령 처리
- Thumb 2
- Thumb EE
- 빅리틀
- SIMD를 위한 NEON 보조 프로세서
- ARMv8과 64비트 컴퓨터
단일 칩 시스템
- 브로드컴 BCM2835 SoC
- 브로드컴의 2세대, 3세대 SoC 장치
- VLSI를 만드는 방법
- 프로세스, 지오메트리, 마스크
- 지적재산권: 셀, 매크로셀, 코어
- 하드 IP와 소프트 IP
- 평면 배치, 레이아웃, 라우팅
- 칩 상의 통신 표준, AMBA
▣ 05장: 프로그래밍
프로그래밍의 개념
- 소프트웨어 개발 과정
- 폭포수, 나선형, 애자일
- 이진수 프로그래밍
- 어셈블리어와 니모닉
- 고급 언어
- 베이직 이후의 대홍수
- 프로그래밍 용어
네이티브 코드 컴파일러의 동작 원리
- 전처리
- 어휘 분석
- 의미 분석
- 중간 코드 생성
- 최적화
- 타깃 코드 생성
- C 언어 컴파일의 예
- 목적 코드 파일과 실행 파일의 연결
텍스트 인터프리터
바이트코드 인터프리터 언어
- P-코드
- 자바
- JIT 컴파일
- 자바를 넘어선 바이트코드와 JIT 컴파일
- 안드로이드, 자바, 달빅
데이터 구성 요소
- 식별자, 예약어, 기호, 연산자
- 값, 리터럴, 이름 상수
- 변수, 표현식, 할당
- 타입과 타입 정의
- 정적 타이핑과 동적 타이핑
- 2의 보수와 IEEE 754
코드 구성 요소
- 제어문과 복합 명령문
- if/then/else 문
- switch 문과 case 문
- repeat 문
- while 루프
- for 루프
- break 문과 continue 문
- 함수
- 지역성과 범위
객체지향 프로그래밍
- 캡슐화
- 상속
- 다형성
- OOP 정리
GNU 컴파일러 툴셋
- 컴파일러 gcc, 빌더 gcc
▣ 06장: 비휘발성 메모리
천공 카드와 테이프
- 리눅스 make
- 천공 카드
- 테이프 저장소
- 자기 저장소의 태동
자기 레코딩 및 인코딩 체계
- 자속 전이
- 수직 기록 방식
자기 디스크 저장소
- 실린더, 트랙, 섹터
- 저수준 포맷
- 인터페이스와 컨트롤러
- 플로피 디스크 드라이브
파티션과 파일 시스템
- 기본 파티션과 확장 파티션
- 파일 시스템과 고급 포맷
- GUID 파티션 테이블(GPT)
- 라즈베리 파이 SD 카드 파티셔닝하기
광학 디스크
- CD 기반 포맷
- DVD 기반 포맷
램디스크
플래시 저장소
- ROM, PROM, EPROM
- EEPROM으로서의 플래시
- SLC와 MLC
- NOR 플래시와 NAND 플래시
- 웨어 레벨링과 플래시 변환 계층
- 가비지 콜렉션과 TRIM
- SD 카드
- eMMC
- 비휘발성 메모리의 미래
▣ 07장: 유무선 이더넷
OSI 참조 모델
- 응용 계층
- 표현 계층
- 세션 계층
- 전송 계층
- 네트워크 계층
- 데이터 링크 계층
- 물리 계층
이더넷
- Thicknet과 Thinnet
- 이더넷의 기본 개념
- 충돌 감지와 회피
- 이더넷 인코딩 시스템
- PAM-5 인코딩
- 10BASE-T와 트위스트 페어 케이블
- 버스 토폴로지에서 스타 토폴로지로
- 스위칭 이더넷
라우터와 인터넷
- 이름 vs. 주소
- IP 주소와 TCP 포트
- 로컬 IP 주소와 DHCP
- 네트워크 주소 변환
Wi-Fi
- 표준 속의 표준
- 현실 세계의 문제
- Wi-Fi 기기의 활용
- 인프라 네트워크 vs. 애드혹 네트워크
- Wi-Fi 분산 미디어 액세스
- 캐리어 감지 및 숨겨진 노드 문제
- 단편화
- 진폭 변조, 위상 변조, QAM
- 확산 스펙트럼 기법
- Wi-Fi 변조와 코딩
- Wi-Fi 연결의 원리
- Wi-Fi 보****
- 라즈베리 파이의 Wi-Fi
- 그 밖의 네트워킹
▣ 08장: 운영체제
운영체제 개론
- 운영체제의 역사
- 운영체제 기초
커널: 운영체제의 조력자
- 운영체제 제어
- 모드
- 메모리 관리
- 가상 메모리
- 멀티태스킹
- 디스크 액세스와 파일 시스템
- 장치 드라이버
OS의 보조 구성 요소
- OS 켜기
- 펌웨어
라즈베리 파이의 운영체제
- NOOBS
- 서드파티 운영체제
- 그 밖의 운영체제
▣ 09장: 비디오 코덱과 압축
최초의 비디오 코덱
- 사람의 눈
- 비디오 데이터
- 주파수 변환
- 무손실 압축
표준의 변화
- 최신 MPEG 표준
- H.265
모션 검색
- 비디오 품질
- 처리 능력
▣ 10장: 3D 그래픽
3D 그래픽의 역사
- 그래픽 사용자 인터페이스(GUI)
- 비디오 게임의 3D 그래픽
- PC와 그래픽 카드
- 표준 경쟁
OpenGL 그래픽 파이프라인
- 기하학적 사양 및 특성
- 기하학적 변환
- 광원과 재질
- 원시 어셈블리와 래스터화
- 픽셀 처리(프래그먼트 셰이딩)
- 텍스처링
그래픽 하드웨어
- 타일 렌더링
- 지오메트리 리젝션
- 셰이딩
- 캐싱
- 라즈베리 파이 GPU
OpenVG
범용 GPU(GPGPU)
- 이종 아키텍처
- OpenCL
▣ 11장: 오디오
들리십니까?
- MIDI
- 사운드 카드
아날로그 vs. 디지털
음향과 신호 처리
- 편집
- 압축
- 녹음과 이펙트
- 통신을 위한 정보 인코딩과 디코딩
1비트 DAC
I2S
- 라즈베리 파이의 사운드 입출력
- 오디오 출력 잭
- HDMI
라즈베리 파이의 사운드
- 라즈베리 파이 온보드 사운드
- 라즈베리 파이에서 사운드 다루기
▣ 12장: 입출력
입출력이란?
입출력
- 범용 직렬 버스
- USB 허브
- 이더넷
- 범용 비동기 송수신기
- SCSI
- PATA
- SATA
- RS-232 시리얼 통신
- HDMI
- I2S
- I2C
- 라즈베리 파이 디스플레이, 카메라 인터페이스, JTAG
GPIO
- GPIO 개요 및 브로드컴 SoC
- GPIO 다루기
- GPIO 프로그래밍
- 대체 모드
- GPIO 실험 쉽게 하기