시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 > 컴퓨터공학

본문 바로가기
쇼핑몰 검색
  • 회원가입
    2000

    로그인

    다양한 서비스와 이벤트 혜택을 누리실 수 있습니다.

    아이디 비밀번호
시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 > 컴퓨터공학

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 요약정보 및 구매

기본설명

상품 선택옵션 0 개, 추가옵션 0 개

제조사 위키북스
원산지 국내산
브랜드 위키북스
시중가격 48,000원
판매가격 48,000원
배송비결제 주문시 결제
최소구매수량 1 개
최대구매수량 999 개

선택된 옵션

  • 시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리
    +0원
위시리스트

관련상품

등록된 상품이 없습니다.

  • 상품정보
  • 사용후기 0
  • 상품문의 0
  • 배송정보
  • 교환정보
  • 상품정보

    상품 기본설명

    기본설명

    상품 상세설명

    시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리

    9791158394349.jpg

    도서명:시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리
    저자/출판사:김동현/위키북스
    쪽수:744쪽
    출판일:2023-06-22
    ISBN:9791158394349

    목차
    ▣ 1장: Arm 프로세서 소개
    1.1 Arm 프로세서의 역사
    __1.1.1 에이콘의 설립
    __1.1.2 Arm사의 설립
    __1.1.3 2010년 이후의 모바일 시장 석권
    1.2 Arm 프로세서의 시리즈
    __1.2.1 Cortex-A 시리즈
    __1.2.2 Cortex-R 시리즈
    __1.2.3 Cortex-M 시리즈
    1.3 Arm 프로세서의 전망
    __1.3.1 Arm 프로세서의 출하량
    __1.3.2 Arm의 생태계
    1.4 Arm의 라이선스 모델
    1.5 Arm 프로세서 관련 용어
    __1.5.1 Arm 아키텍처란?
    __1.5.2 Arm 프로세서란?
    __1.5.3 Arm 코어란?
    1.6 이 책의 구성
    1.7 이 책에서 다루는 Arm 아키텍처와 운영체제
    __1.7.1 Arm 아키텍처
    __1.7.2 Arm 프로세서와 함께 다루는 운영체제
    1.8 정리

    ▣ 2장: Arm 아키텍처 학습 방법
    2.1 Arm 프로세서는 왜 배워야 할까?
    __2.1.1 브링업을 잘 하기 위해
    __2.1.2 디바이스 드라이버 개발을 잘 하기 위해
    __2.1.3 RTOS나 리눅스 커널을 깊이 있게 이해하기 위해
    __2.1.4 디버깅을 통한 문제 해결 능력을 키우기 위해
    __2.1.5 Arm 아키텍처를 일반 소프트웨어 개발자도 배워야 하는 이유
    2.2 Arm 프로세서를 공부하는 방법의 문제점
    __2.2.1 Arm 어셈블리 명령어를 무리하게 암기한다
    __2.2.2 Arm 아키텍처의 내용만 따로 배운다
    __2.2.3 배운 내용이 실전 프로젝트에서 어떻게 활용되는지 파악하지 않는다
    2.3 Arm 아키텍처는 어떻게 공부해야 할까?
    __2.3.1 디버깅을 하면서 어셈블리 명령어를 익힌다
    __2.3.2 운영체제의 기본 원리와 함께 Arm 아키텍처를 배운다
    __2.3.3 실전 프로젝트에서 배운 내용이 어떤 방식으로 구현돼 있는지 확인한다
    2.4 정리

    ▣ 3장: 레지스터
    3.1 레지스터 소개
    __3.1.1 레지스터란?
    __3.1.2 Arm 아키텍처의 레지스터
    3.2 Armv7 아키텍처의 레지스터
    __3.2.1 범용 레지스터
    ____3.2.1.1 Arm 스펙에서 범용 레지스터 확인하기
    ____3.2.1.2 R0 ~ R15 레지스터의 역할
    ____3.2.1.3 범용 레지스터에서 뱅크드 레지스터란?
    __3.2.2 CPSR와 SPSR 레지스터
    ____3.2.2.1 CPSR 레지스터
    ____3.2.2.2 SPSR 레지스터
    3.3 Armv8 아키텍처의 레지스터
    __3.3.1 Armv8 아키텍처의 범용 레지스터
    ____3.3.1.1 범용 레지스터 소개
    __3.3.2 스페셜 레지스터
    __3.3.3 PSTATE와 SPSR_ELx 레지스터
    ____3.3.3.1 PSTATE
    ____3.3.3.2 SPSR_ELx 레지스터
    ____3.3.3.3 PSTATE의 필드를 설정하는 명령어
    __3.3.4 시스템 레지스터
    __3.3.5 시스템 레지스터에 접근하는 명령어
    3.4 정리

    ▣ 4장: 어셈블리 명령어
    4.1 Arm 어셈블리 명령어 소개
    __4.1.1 어셈블리 명령어란?
    __4.1.2 어셈블리 명령어의 기본 형식
    __4.1.3 어셈블리 명령어의 종류
    __4.1.4 어셈블리 명령어로 무엇을 할 수 있을까?
    __4.1.5 어셈블리 명령어의 진실과 오해
    4.2 데이터 처리 명령어
    __4.2.1 Move 명령어
    ____4.2.1.1 MOV 명령어
    ____4.2.1.2 MVN 명령어
    __4.2.2 산술 명령어
    ____4.2.2.1 ADD 명령어
    ____4.2.2.2 SUB 명령어
    ____4.2.2.3 ADC 명령어
    ____4.2.2.4 SBC 명령어
    ____4.2.2.5 RSB 명령어
    ____4.2.2.6 RSC 명령어
    __4.2.3 비트 시프트 명령어
    ____4.2.3.1 LSL 명령어
    ____4.2.3.2 LSR 명령어
    ____4.2.3.3 ASR 명령어
    ____4.2.3.4 ROR 명령어
    __4.2.4 논리 비트 명령어
    ____4.2.4.1 AND 명령어
    ____4.2.4.2 ORR 명령어
    ____4.2.4.3 ORN 명령어
    ____4.2.4.4 BIC 명령어
    ____4.2.4.5 EOR 명령어
    4.3 메모리 연산 명령어
    __4.3.1 Load(ldr) 명령어
    __4.3.2 Store(str) 명령어
    4.4 Armv7 - A32 비교 및 분기 명령어
    __4.4.1 플래그 설정 명령어
    ____4.4.1.1 CMP 명령어
    ____4.4.1.2 CMN 명령어
    ____4.4.1.3 TST 명령어
    ____4.4.1.4 TEQ 명령어
    __4.4.2 조건부 코드
    __4.4.3 B와 BL 명령어
    ____4.4.3.1 B 〈label〉 명령어
    ____4.4.3.2 BL 〈label〉 명령어
    ____4.4.3.3 BR 명령어
    ____4.4.3.4 BLR 명령어
    4.5 Armv8 - A64 조건부 분기 명령어
    __4.5.1 조건부 분기 명령어(B.COND)
    __4.5.2 Compare/Test 분기 명령어
    ____4.5.2.1 CBZ 명령어
    ____4.5.2.2 CBNZ 명령어
    ____4.5.2.3 TBZ 명령어
    ____4.5.2.4 TBNZ 명령어
    4.6 트랩 관련 명령어
    __4.6.1 SVC 명령어
    __4.6.2 HVC 명령어
    __4.6.3 SMC 명령어
    4.7 프로세서 상태 제어 명령어
    __4.7.1 xPSR(CPSR, SPSR) 레지스터 설정 명령어
    __4.7.2 PSTATE 설정 명령어
    4.8 정리

    ▣ 5장: Armv7 - 동작 모드
    5.1 Armv7 아키텍처의 동작 모드 소개
    __5.1.1 PL와 동작 모드 소개
    __5.1.2 어떤 동작 모드를 선택해야 할까?
    5.2 동작 모드와 관련된 레지스터
    __5.2.1 CPSR 레지스터
    __5.2.2 SPSR 레지스터
    5.3 동작 모드를 바꾸는 명령어
    __5.3.1 MSR CPSR_C 명령어로 동작 모드 변경
    ____5.3.1.1 MSR CPSR_C 명령어를 실행하면 변경되는 비트
    ____5.3.1.2 MSR CPSR_C 명령어를 사용하는 예제 코드 분석
    __5.3.2 SUBS와 MOVS 명령어
    5.4 동작 모드를 활용한 리눅스 커널의 구현 방식
    __5.4.1 동작 모드별로 스택을 저장
    __5.4.2 익셉션이 유발된 후 슈퍼바이저 모드로 변경
    5.5 정리

    ▣ 6장: Armv8 - 익셉션 레벨
    6.1 Armv8 아키텍처의 익셉션 레벨
    __6.1.1 익셉션 레벨 소개
    __6.1.2 익셉션 레벨과 특권 레벨
    __6.1.3 익셉션 레벨은 어떻게 변경될까?
    6.2 익셉션 레벨과 관련된 레지스터
    __6.2.1 PSTATE와 CurrentEL 레지스터
    __6.2.2 SPSR_ELx 레지스터
    __6.2.3 ELR_ELx 레지스터
    6.3 익셉션 레벨과 관련된 명령어
    __6.3.1 mrs 〈Xt〉 CurrentEL
    __6.3.2 ERET 명령어
    __6.3.3 슈퍼바이저 콜(시스템 콜 발생)
    __6.3.4 하이퍼바이저 콜
    __6.3.5 시큐어 모니터 콜
    6.4 익셉션 레벨을 읽고 제어하는 예제 코드 분석
    __6.4.1 리눅스 커널에서 익셉션 레벨을 읽고 제어하는 루틴
    __6.4.2 XEN 하이퍼바이저에서 익셉션 레벨을 체크
    6.5 정리

    ▣ 7장: 익셉션 소개
    7.1 익셉션 소개
    __7.1.1 CPU 아키텍처 관점에서 익셉션이란?
    __7.1.2 Arm 아키텍처 관점에서 익셉션이란?
    __7.1.3 소프트웨어 관점에서 익셉션이란?
    7.2 익셉션의 동작 원리를 잘 알아야 하는 이유
    __7.2.1 실전 프로젝트에서 문제해결 능력을 키울 수 있다
    __7.2.2 운영체제를 깊이 있게 이해하기 위해
    __7.2.3 하이퍼바이저, 트러스트존을 이해하기 위해
    7.3 익셉션을 배우기 어려운 이유
    __7.3.1 익셉션의 주요 내용은 CPU 설계 관점으로 설명한 내용이 많다
    __7.3.2 익셉션이 발생하면 지정된 주소로 분기하는 동작이 낯설다
    7.4 익셉션을 효과적으로 배우는 방법
    __7.4.1 익셉션을 배우는 데 필요한 기반 지식을 함께 배운다
    __7.4.2 익셉션의 기본 동작 원리를 먼저 배운다
    __7.4.3 운영체제 커널에 구현된 익셉션 코드를 함께 분석한다
    __7.4.4 실습을 하면서 익셉션을 배운다
    7.5 익셉션을 구성하는 주요 개념
    __7.5.1 익셉션이 발생할 때의 기본 동작
    __7.5.2 익셉션 벡터 테이블
    __7.5.3 익셉션과 관련된 레지스터
    __7.5.4 익셉션 관련 코드는 어디에 구현됐을까?
    ____7.5.4.1 익셉션과 관련된 코드는 무엇일까?
    ____7.5.4.2 익셉션 핸들러란?
    7.6 정리

    ▣ 8장: Armv7 - 익셉션
    8.1 Armv7 익셉션의 주요 동작
    __8.1.1 Armv7 아키텍처의 익셉션 소개
    __8.1.2 익셉션을 구성하는 주요 개념
    8.2 익셉션의 전체 실행 흐름
    __8.2.1 메모리 어보트 타입 익셉션의 실행 흐름
    __8.2.2 인터럽트 타입 익셉션의 실행 흐름
    __8.2.3 소프트웨어 인터럽트 익셉션의 실행 흐름
    __8.2.4 익셉션의 전체 실행 흐름 정리
    8.3 익셉션 종류별 레지스터 변경
    __8.3.1 메모리 어보트 타입 익셉션
    ____8.3.1.1 Prefetch Abort가 발생할 때 Arm 코어의 세부 동작
    ____8.3.1.2 Data Abort를 유발할 때 Arm 코어의 세부 동작
    ____8.3.1.3 Undefined Instruction 익셉션을 유발할 때의 Arm 코어의 세부 동작
    __8.3.2 인터럽트 타입 익셉션을 유발할 때 Arm 코어의 세부 동작
    __8.3.3 소프트웨어 인터럽트
    8.4 파이프라인과 익셉션
    __8.4.1 파이프라인의 어느 단계에서 익셉션이 발생할까?
    __8.4.2 익셉션이 유발된 시점의 이전 모드로 복귀하는 방법 정리
    8.5 익셉션 벡터 테이블
    __8.5.1 익셉션 벡터 테이블이란?
    __8.5.2 익셉션 벡터 테이블과 익셉션 핸들러
    __8.5.3 익셉션 핸들러란?
    8.6 익셉션과 같이 배워야 하는 운영체제 지식
    __8.6.1 익셉션이 발생하면 프로세스는 어떻게 동작할까?
    __8.6.2 익셉션 벡터는 프로세스의 어느 공간에서 실행될까?
    8.7 메모리 어보트 타입 익셉션은 실제로 어떻게 유발될까?
    __8.7.1 Undefined Instruction 익셉션이 발생하는 사례
    __8.7.2 Prefetch Abort 익셉션이 발생하는 사례
    __8.7.3 Data Abort 익셉션이 발생하는 사례
    8.8 정리

    ▣ 9장: Armv8 - 익셉션
    9.1 Armv8 아키텍처의 익셉션 소개
    __9.1.1 Armv8 익셉션의 특징
    __9.1.2 Armv8 아키텍처의 익셉션을 잘 알아야 하는 이유
    9.2 Armv8 익셉션의 종류와 분류 체계
    __9.2.1 Synchronous 타입 익셉션
    __9.2.2 Asynchronous 익셉션 타입
    9.3 익셉션 클래스와 익셉션 신드롬 레지스터(ESR_ELx)
    __9.3.1 익셉션 신드롬 레지스터(ESR_ELx)
    __9.3.2 익셉션 클래스
    ____9.3.2.1 메모리 어보트 관련 익셉션 클래스
    ____9.3.2.2 트랩 관련 익셉션 클래스
    ____9.3.2.3 코프로세서의 트랩 관련 익셉션 클래스
    ____9.3.2.4 브레이크포인트 관련 익셉션 클래스
    ____9.3.2.5 기타 익셉션 클래스
    9.4 Armv8 익셉션을 구성하는 주요 개념
    __9.4.1 익셉션의 유발 요인
    __9.4.2 레지스터 업데이트
    __9.4.3 익셉션 레벨 변경
    __9.4.4 익셉션 벡터 테이블
    __9.4.5 익셉션 핸들러
    9.5 익셉션의 전체 실행 흐름
    __9.5.1 Synchronous 익셉션의 실행 흐름
    ____9.5.1.1 메모리 어보트로 Synchronous 익셉션이 처리되는 전체 흐름
    ____9.5.1.2 소프트웨어 인터럽트로 Synchronous 익셉션이 처리되는 전체 흐름
    __9.5.2 인터럽트 타입 익셉션의 실행 흐름
    __9.5.3 익셉션의 전체 실행 흐름 정리
    9.6 익셉션 종류별 레지스터 변경
    __9.6.1 Synchronous 익셉션을 유발할 때 변경되는 레지스터
    __9.6.2 IRQ 인터럽트 익셉션을 유발할 때 Arm 코어의 세부 동작
    9.7 익셉션 벡터 테이블 분석
    __9.7.1 익셉션 벡터 테이블을 구성하는 용어
    __9.7.2 익셉션 벡터 테이블의 내용 해석하기
    __9.7.3 익셉션 레벨별 익셉션 벡터 테이블 분석
    ____9.7.3.1 VBAR_EL1을 기준으로 익셉션 벡터 테이블 분석
    ____9.7.3.2 VBAR_EL2 기준 익셉션 벡터 테이블 분석하기
    __9.7.4 익셉션 핸들러 코드 분석
    __9.7.5 VBAR_EL1, VBAR_EL2 기준으로 익셉션 핸들러는 어디에 존재할까?
    9.8 익셉션과 익셉션 모델
    __9.8.1 EL0에서 익셉션 유발
    __9.8.2 EL1에서 익셉션 유발
    9.9 Illegal Return Event(허용되지 않는 익셉션 레벨 복귀)
    __9.9.1 Illegal Return Event란?
    __9.9.2 Illegal Return Event의 후속 처리
    9.10 정리

    ▣ 10장: GIC
    10.1 인터럽트 컨트롤러 소개
    __10.1.1 인터럽트 컨트롤러가 필요한 이유
    __10.1.2 인터럽트 컨트롤러의 기본 구조
    10.2 GIC 소개
    __10.2.1 GIC는 왜 배워야 할까?
    __10.2.2 GIC의 기본 기능
    __10.2.3 GIC 버전과 주요 기능
    10.3 GIC의 기본 구조
    __10.3.1 인터럽트 소스와 타입
    ____10.3.1.1 SPI(Shared Peripheral Interrupt)
    ____10.3.1.2 PPI(Private Peripheral Interrupt)
    ____10.3.1.3 SGI 인터럽트
    ____10.3.1.4 GIC 인터럽트 종류와 인터럽트 아이디
    ____10.3.1.5 인터럽트 아이디를 읽어 제어하는 코드 리뷰
    __10.3.2 인터럽트 상태 머신
    ____10.3.2.1 레벨 센서티브 타입 인터럽트의 상태 머신
    ____10.3.2.2 에지 트리거 타입 인터럽트의 상태 머신
    10.4 GIC의 프로그래머 모델
    __10.4.1 디스트리뷰터(GICD_*) 시스템 레지스터
    ____10.4.1.1 GICD_IROUTER〈n〉 레지스터
    ____10.4.1.2 GICD_IPRIORITYR〈n〉 레지스터
    ____10.4.1.3 GICD_ICFGR〈n〉 레지스터
    ____10.4.1.4 GICD_IGROUPR〈n〉 레지스터
    ____10.4.1.5 GICD_IGRPMODR〈n〉 레지스터
    __10.4.2 리디스트리뷰터 - Redistributors(GICR_*)
    ____10.4.2.1 GICR_ISENABLER0 레지스터
    ____10.4.2.2 GICR_ICFGR0 레지스터
    ____10.4.2.3 GICR_IPRIORITYR〈n〉 레지스터
    ____10.4.2.4 GICR_IGROUPR0 레지스터
    ____10.4.2.5 GICR_IGRPMODR0 레지스터
    __10.4.3 CPU 인터페이스(ICC_*_ELn)
    ____10.4.3.1 ICC_IAR1_EL1 레지스터
    ____10.4.3.2 ICC_EOIR1_EL1 레지스터
    ____10.4.3.3 ICC_PMR_EL1 레지스터
    ____10.4.3.4 ICC_RPR_EL1 레지스터
    ____10.4.3.5 ICC_BPR0_EL1 레지스터
    ____10.4.3.6 ICC_CTLR_EL1 레지스터
    ____10.4.3.7 ICC_SRE_EL1 레지스터
    ____10.4.3.8 ICC_IGRPEN1_EL1 레지스터
    10.5 인터럽트 그룹
    __10.5.1 인터럽트 그룹이 생겨난 이유
    __10.5.2 인터럽트 그룹이란?
    10.6 GIC 레지스터 설정
    __10.6.1 전반적인 설정(GICD_CTRL)
    __10.6.2 PE에서 설정하는 GIC 시스템 레지스터
    ____10.6.2.1 리디스트리뷰터 설정
    ____10.6.2.2 CPU 인터페이스 설정
    ____10.6.2.3 익셉션 벡터 베이스 주소와 SCR_EL3, HCR_EL2 설정
    __10.6.3 SPI, PPI, SGI 설정
    ____10.6.3.1 기본 속성 설정
    ____10.6.3.2 SPI를 특정 CPU 코어에 타깃팅: Affinity 설정
    __10.6.4 주요 기능 설정 및 동작 원리
    ____10.6.4.1 시큐어 인터럽트 라우팅
    ____10.6.4.2 러닝 우선순위와 인터럽트 동작
    10.7 GIC 인터럽트 핸들러에서 인터럽트 처리하기
    __10.7.1 Arm 코어의 익셉션 핸들러 루틴
    __10.7.2 GIC 인터럽트 핸들러 루틴
    __10.7.3 GIC 인터럽트 핸들러 코드 분석
    10.8 정리

    ▣ 11장: AAPCS(함수 호출 규약)
    11.1 AAPCS 소개
    __11.1.1 함수 호출과 관련된 진실과 오해
    __11.1.2 Arm 스펙 문서에서의 AAPCS
    11.2 소프트웨어 개발자는 왜 AAPCS를 알아야 할까?
    __11.2.1 프로그램의 근본 동작 원리 파악
    __11.2.2 안정적이고 최적화된 코드 작성
    __11.2.3 실전 프로젝트에서의 디버깅을 위한 기초 체력 증진
    11.3 AAPCS를 배우는 방법
    __11.3.1 AAPCS를 배우기 어려운 이유
    __11.3.2 AAPCS를 효과적으로 배우는 방법
    11.4 AAPCS를 배우기 위해 알아야 하는 지식
    __11.4.1 스택 자료구조란?
    __11.4.2 프로세스의 스택 공간이란?
    __11.4.3 스택 포인터와 스택 프레임
    __11.4.4 AAPCS와 관련된 레지스터
    11.5 정리

    ▣ 12장: Armv7 - AAPCS
    12.1 Armv7 아키텍처에서의 AAPCS 관련 레지스터
    __12.1.1 SP와 LR 레지스터란?
    __12.1.2 함수를 호출하기 위한 설계
    12.2 서브루틴(함수)으로 분기될 때 실행되는 어셈블리 명령어
    __12.2.1 스택과 관련된 명령어
    ____12.2.1.1 PUSH 명령어
    ____12.2.1.2 SUB 명령어
    ____12.2.1.3 POP 명령어
    __12.2.2 분기 명령어
    12.3 AAPCS와 관련된 레지스터와 어셈블리 명령어 분석
    __12.3.1 SP 레지스터의 세부 동작
    __12.3.2 LR(R14) 링크 레지스터와 어셈블리 명령어 분석
    __12.3.3 함수를 호출할 때 쓰이는 R0 ~ R3 레지스터와 명령어 분석
    12.4 AAPCS와 C 코드 최적화
    __12.4.1 함수 인자의 개수는 4개 이하로 제한
    __12.4.2 함수 반환형은 워드 단위로 지정
    __12.4.3 매우 자주 호출되는 함수는 inline 키워드로 선언
    12.5 정리

    ▣ 13장: Armv8 - AAPCS
    13.1 Armv8 아키텍처의 AAPCS 관련 레지스터
    __13.1.1 SP_ELn과 X30 레지스터란?
    __13.1.2 함수를 호출하기 위한 설계
    13.2 서브루틴(함수)으로 분기될 때 실행되는 어셈블리 명령어
    __13.2.1 스택과 관련된 명령어
    ____13.2.1.1 STP 명령어
    ____13.2.1.2 SUB 명령어
    ____13.2.1.3 LDP 명령어
    __13.2.2 분기와 복귀 명령어
    ____13.2.2.1 BL 명령어
    ____13.2.2.2 RET 명령어
    13.3 AAPCS와 관련된 레지스터와 어셈블리 명령어 분석
    __13.3.1 스택 포인터 레지스터의 세부 동작
    __13.3.2 X30 링크 레지스터와 어셈블리 명령어 분석
    __13.3.3 함수를 호출할 때 쓰이는 X0 ~ X7 레지스터와 명령어 분석
    13.4 AAPCS와 C 코드 최적화
    __13.4.1 함수 인자의 개수는 8개 이하로 제한
    __13.4.2 매우 자주 호출되는 함수는 inline 키워드로 선언
    13.5 정리

    ▣ 14장: 트러스트존
    14.1 트러스트존이란?
    __14.1.1 트러스트존이 도입된 이유
    14.2 트러스트존의 주요 개념
    __14.2.1 논시큐어 월드와 시큐어 월드란?
    __14.2.2 시큐어 모니터 콜
    14.3 Armv7 아키텍처의 트러스트존
    __14.3.1 시큐어 월드로 실행 흐름이 변경되는 과정
    __14.3.2 시큐어 모드와 익셉션 벡터 테이블
    __14.3.3 시큐어 상태와 SCR 레지스터
    __14.3.4 시큐어 월드의 익셉션 핸들러 구현
    __14.3.5 모니터 모드의 익셉션 핸들러 리뷰
    14.4 Armv8 아키텍처의 트러스트존
    __14.4.1 익셉션 레벨과 시큐어 모드와의 관계
    __14.4.2 시큐어 상태와 SCR_EL3 레지스터
    __14.4.3 SCR_EL3 레지스터에 접근하는 명령어
    __14.4.4 트러스트존에서 구현된 익셉션 핸들러
    14.5 트러스트존과 관련된 하드웨어 기능
    __14.5.1 AWPROT, ARPROT 시그널
    __14.5.2 트러스트존의 5가지 하드웨어 기능
    14.6 트러스트존의 실제 구현 방식
    __14.6.1 시큐어 월드에서 트러스티드 OS는 어떻게 구동할까?
    __14.6.2 시큐어 RTOS 구현 사례: QSEE
    14.7 Arm 트러스티드 펌웨어 EL3 모니터 코드 리뷰
    __14.7.1 Arm 트러스티드 펌웨어란?
    __14.7.2 EL3 모니터 익셉션 핸들러 코드 분석
    ____14.7.2.1 EL3 모니터 익셉션 핸들러 코드
    ____14.7.2.2 익셉션 종류별 익셉션 핸들러 코드 분석
    ____14.7.2.3 익셉션 핸들러 코드 분석
    14.8 정리

    ▣ 15장: 가상화(Virtualization)
    15.1 하이퍼바이저 소개
    __15.1.1 하이퍼바이저란?
    __15.1.2 하이퍼바이저 타입
    __15.1.3 하이퍼바이저를 구성하는 요소
    __15.1.4 하이퍼바이저는 왜 알아야 할까?
    15.2 가상화 관련 명령어
    __15.2.1 HVC 명령어
    __15.2.2 WFE, WFI 명령어
    15.3 가상화 관련 레지스터
    __15.3.1 HCR_EL2 레지스터
    __15.3.2 HCR_EL2 레지스터에 접근하는 명령어
    __15.3.3 HCR_EL2 레지스터에 접근하는 어셈블리 코드 분석
    15.4 가상화와 익셉션 벡터 테이블
    __15.4.1 익셉션 벡터 테이블 확인하기
    __15.4.2 가상화 관점의 익셉션 벡터 테이블 분석
    15.5 XEN 하이퍼바이저 코드 리뷰
    __15.5.1 XEN 하이퍼바이저 소개
    __15.5.2 EL2 익셉션 핸들러 코드 분석
    ____15.5.2.1 익셉션 핸들러 코드 소개
    ____15.5.2.2 익셉션 핸들러 코드 분석
    __15.5.3 게스트 Exit를 처리하는 코드 분석
    15.6 정리

    ▣ 16장: Armv9 - CCA
    16.1 CCA 소개
    __16.1.1 CCA란?
    __16.1.2 CCA가 도입된 이유
    __16.1.3 CCA를 구성하는 요소
    __16.1.4 CCA와 관련된 오픈소스 프로젝트
    16.2 RME
    __16.2.1 Realm 상태란?
    __16.2.2 Realm 월드의 소프트웨어 스택
    __16.2.3 RMM
    ____16.2.3.1 RMM의 주요 기능
    ____16.2.3.2 RMM에 접근하는 두 가지 채널
    16.3 GPT와 주소 접근 권한 제어
    __16.3.1 GPT(Granule Protection Table)란?
    __16.3.2 GPC(Granule Protection Check)의 동작 원리
    16.4 RME 관련 시스템 레지스터
    __16.4.1 SCR_EL3와 시큐어 상태
    __16.4.2 GPTBR_EL3 레지스터
    __16.4.3 GPCCR_EL3 레지스터
    16.5 정리

    ▣ 17장: 메모리 모델
    17.1 메모리 모델 소개
    __17.1.1 노멀 메모리 타입이란?
    __17.1.2 디바이스 메모리란?
    __17.1.3 메모리 맵과 메모리 모델
    17.2 메모리 리오더링과 Weakly Ordered 속성
    __17.2.1 메모리 리오더링 소개
    __17.2.2 어드레스 의존성이란?
    __17.2.3 메모리 리오더링 예시
    17.3 메모리 배리어
    __17.3.1 Data Memory Barrier(DMB)
    __17.3.2 Data Synchronization Barrier(DSB)
    __17.3.3 Instruction Synchronization Barrier(ISB)
    17.4 Shareability 도메인과 배리어 명령어 옵션
    __17.4.1 멀티 코어 시스템에서 데이터 동기화
    __17.4.2 Qualifier 및 Shareable 메모리 속성
    __17.4.3 배리어 명령어 옵션
    __17.4.4 배리어 명령어에 Qualifier를 적용하는 방법
    17.5 배리어 명령어 사용 케이스 스터디
    __17.5.1 리눅스 커널: 스핀락 해제 시 배리어 사용
    __17.5.2 시스템 레지스터 설정 시 ISB 배리어 설정
    17.6 정리

    ▣ 18장: 캐시
    18.1 캐시 소개
    __18.1.1 캐시란?
    __18.1.2 메모리 아키텍처에서 캐시란?
    __18.1.3 L1 캐시와 L2 캐시란?
    __18.1.4 캐시 알고리즘의 배경
    ____18.1.4.1 공간 지역성
    ____18.1.4.2 시간 지역성
    ____18.1.4.3 알고리즘 지역성
    18.2 캐시의 기본 동작 원리
    __18.2.1 캐시의 검색 방법
    ____18.2.1.1 캐시에 접근하기 위해 주소를 분류하는 방식
    ____18.2.1.2 캐시의 구성
    __18.2.2 캐시 룩업의 동작 원리
    ____18.2.2.1 캐시 히트 동작
    ____18.2.2.2 캐시 미스 동작
    __18.2.3 Way와 Set의 개념
    18.3 멀티 레벨 캐시
    __18.3.1 캐시의 성능 지표
    __18.3.2 멀티 캐시를 구성하는 원리
    __18.3.3 멀티 캐시 정책
    18.4 Arm Cortex 프로세서의 캐시 구조
    __18.4.1 Direct-Mapped 캐시 구조
    __18.4.2 Set-Associative 캐시 구조
    __18.4.3 Arm 프로세서별 캐시 스펙
    18.5 캐시 제어 레지스터
    __18.5.1 CTR_EL0 레지스터
    __18.5.2 CLIDR_EL1 레지스터
    __18.5.3 CCSIDR_EL1 레지스터
    18.6 캐시 제어 어셈블리 명령어
    __18.6.1 캐시 관련 용어 알아보기
    __18.6.2 캐시 관련 어셈블리 명령어
    18.7 정리

    ▣ 19장: 메모리 매니지먼트
    19.1 메모리 매니지먼트 소개
    __19.1.1 메모리 매니지먼트란?
    __19.1.2 MMU란?
    __19.1.3 가상 주소와 물리 주소의 개념
    __19.1.4 운영체제 관점에서 메모리 매니지먼트란?
    19.2 MMU의 세부 동작
    __19.2.1 MMU를 구성하는 주요 기능
    __19.2.2 MMU에서 주소를 변환하는 과정
    19.3 익셉션 레벨별 가상 주소 영역
    __19.3.1 가상화 시스템에서 가상 주소 공간
    __19.3.2 가상 주소 공간과 관련된 변환 테이블 베이스 주소
    __19.3.3 가상 주소 영역의 사이즈는 어떻게 설정될까?
    19.4 메모리 컨트롤 시스템 레지스터
    __19.4.1 TTBR0_EL1, Translation Table Base Register 0(EL1)
    __19.4.2 TCR_EL1 레지스터
    __19.4.3 SCTLR_EL1 레지스터
    __19.4.4 FAR_EL1, Fault Address Register(EL1)
    19.5 메모리 속성과 MMU를 설정하는 예제 코드 분석
    __19.5.1 메모리 속성 정보를 설정하는 루틴의 예
    __19.5.2 MMU를 설정하는 명령어 루틴 소개 - XEN 하이퍼바이저
    19.6 정리

    ▣ 부록A: 어셈블리 명령어
    A.1 Armv7 어셈블리 명령어
    __A.1.1 이동, 산술, 비트 연산 명령어
    __A.1.2 비교 및 분기 명령어
    __A.1.3 로드 및 스토어 명령어
    __A.1.4 곱셈 명령어
    __A.1.5 스택 제어 명령어
    __A.1.6 시스템 명령어
    __A.1.7 배리어 명령어
    A.2 Armv8 - A64(Aarch64) 명령어
    __A.2.1 이동, 산술, 비트 연산 명령어
    __A.2.2 비교 및 분기 명령어
    __A.2.3 로드 및 스토어 명령어
    __A.2.4 시스템 명령어
    __A.2.5 배리어 명령어

    ▣ 부록B: 레지스터
    B.1 Armv7 레지스터
    __B.1.1 범용 레지스터
    __B.1.2 시스템 레지스터
    B.2 Armv8 레지스터
    __B.2.1 범용 레지스터
    __B.2.2 스페셜 레지스터
    __B.2.3 시스템 레지스터

    ▣ 부록C: 인라인 어셈블리
    C.1 인라인 어셈블리 소개
    C.2 인라인 어셈블리 명령어 형식 1
    C.3 인라인 어셈블리 명령어 형식 2

    ▣ 부록D: Arm 아키텍처 관련 실전 프로젝트 케이스 스터디
    D.1 스택 오염
    __D.1.1 스택 오염은 왜 발생할까?
    __D.1.2 스택 오염이 발생한 실제 예시
    __D.1.3 스택 오염 문제는 어떻게 디버깅할까?
    D.2 스택 오버플로란?
    __D.2.1 스택 오버플로 증상과 그 원인
    __D.2.2 스택 오버플로가 발생하면 시스템은 어떻게 오동작할까?
    __D.2.3 스택 오버플로는 어떻게 방지할까?
    ____D.2.3.1 코드를 Arm 아키텍처 관점으로 분석
    ____D.2.3.2 컴파일러에서 스택 오버플로 검출 기능 활성화
    ____D.2.3.3 배열 대신 동적 메모리를 할당하는 코드를 사용
    ____D.2.3.4 스택 크기를 증가
    ____D.2.3.5 디버깅 코드 활용
    delivery.jpg
  • 사용후기

    등록된 사용후기

    사용후기가 없습니다.

  • 상품문의

    등록된 상품문의

    상품문의가 없습니다.

  • 배송정보

    배송정보

    배송업체 : 한진택배 (1588-0011)
     배송비
     2,500원 (25,000원 이상 구매 시 무료 배송/일부상품제외) 군부대 및 도서산간 지역은 추가 배송비가 발생할 수 있습니다.
     ◆배송기간
     : 평일 오전 7시 이전 주문 시 당일 발송 (2~3일 소요) : 단, 공휴일, 연휴, 천재지변 등으로 인해 발송이 지연될 수 있습니다.
     ◆배송추적
     : 당일 발송건에 한해 익일 오전 9시 이후 확인 가능합니다.


  • 교환정보

    교환/반품

     ◆반품/교환을 원하는 경우 반드시 고객센터로 연락 후 신청하시기 바랍니다.
     ◆반품/교환은 상품 수령일로 부터 7일 이내에만 가능합니다. 단, 상품이 훼손되지 않았거나, 속 비닐이 있는 경우 듣지 않았을    때 가능합니다.
     •고객님의 변심 또는 잘못 주문하신 경우에는 왕복 배송비는 고객님의 부담입니다.
     ◆오배송, 파본, 불량 상품에 대해서는 고객센터로 연락주시면 상담 후 교환해 드립니다.
     ◆오배송, 파본, 불량상품의 배송비는 환불처에서 부담합니다.
     교환/반품
     ◆환불은 상품이 환불에 도착 시 처리됩니다. (카드 취소는 3~5일이 소요될 수 있습니다.)

장바구니

오늘본상품

오늘 본 상품

  • 시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리
    시스템 소프트웨어 48,000
  • 하나님의 선물
    하나님의 선물 14,000
  • 모두의 질문
    모두의 질문 19,000
  • 문해교육론
    문해교육론 18,000
  • 낙도행전
    낙도행전 16,000
  • 영적 전투력
    영적 전투력 14,000
  • 끈질긴 은혜에 붙들린 삶
    끈질긴 은혜에 붙들 17,000
  • 시크릿 회복탄력성
    시크릿 회복탄력성 22,000
  • 제임스 앨런 부의 여덟 기둥
    제임스 앨런 부의 23,800
  • 교회 속 반그리스도인
    교회 속 반그리스도 14,000
  • 나폴레온 힐 마지막 수업
    나폴레온 힐 마지막 18,700
  • 어쩌다 학부모
    어쩌다 학부모 17,000
  • 바울서신
    바울서신 6,500
  • 사랑하며 살기에도 시간이 부족하다
    사랑하며 살기에도 17,000
  • 마음 바로 알기
    마음 바로 알기 11,000
  • 행복한 이기주의자(리뉴얼)
    행복한 이기주의자( 19,800
  • 하나님 이름을 아는 지식
    하나님 이름을 아는 16,000
  • 내향인이지만 성공은 하고 싶어
    내향인이지만 성공은 18,000
  • 생각한다는 것
    생각한다는 것 16,000
  • 자라는 중이니까 괜찮아
    자라는 중이니까 괜 17,000
  • 우리말성경(DKV2406/단본/무색인/페이퍼백/레드베이지)
    우리말성경(DKV2 26,000
  • 환경 위기와 창조 세계의 희망
    환경 위기와 창조 30,000
  • 바울로부터
    바울로부터 25,000
  • 밤의 가스파르
    밤의 가스파르 9,800
  • 혁신하는 교회
    혁신하는 교회 24,000
  • 굿
    굿 16,000
  • 초등생을 위한 성경적 성교육: 5주 과정 교사용
    초등생을 위한 성경 17,000
  • 오이디푸스왕 외
    오이디푸스왕 외 11,800
  • 좁고 깊게 산다는 것에 관하여
    좁고 깊게 산다는 19,000
  • 소설 보다 가을 2023
    소설 보다 가을 2 3,500

위시리스트

  • 보관 내역이 없습니다.
회사명 (주)꼭대기 주소 서울 특별시 마포구 연희로 11,5층 S-537호
사업자 등록번호 795-87-00429 대표 오주봉 전화 02-356-5779 팩스 02-356-5779
통신판매업신고번호 제2017-서울마포-0052호 개인정보 보호책임자 dhwnqhd

Copyright © 2001-2013 (주)꼭대기. All Rights Reserved.