목록Computer Science (54)
용's
정말 간단하게 정리해보자 10.1 Cache- 프로세서는 메모리보다 훨씬 빠르므로 속도차 극복을 위해 캐시라는 것을 사용하게 됨- 캐시가 재대로 이용되면서 높은 성능을 보일 수있는 이유는 프로그램들이 보통 locality의 특징을 가지기 때문- 단일화 된 캐시(명령어 캐시와 데이터 캐시가 하나로 단일화)- 분리된 데이터&명령어 캐시(하버드 아키텍처).단일 클락 사이클 안에 load/store 명령이 execute stage에서 되도록 허락 - Mapping(사상 방법).Direct Mapped Cache: 단순하고 가장 빠르다. 같은 인덱스 값을 가지는 다수의 메모리주소들을 가짐.Set Associative Cache: 특정 메모리를 경쟁하는 문제를 줄이기 위해 특정 메모리 주소를 캐시 영역에 한 군데 ..
이번 챕터에서는 각 ARM 버전의 프로세서 코어를 비교해보자 9.1 ARM7TDMI- ARM7은 가장 유명하게 쓰였던 코어로서, TDMI은 다음과 같은 뜻을 지닌다..T: Thumb 16bit 명령어를 지원.D: On-Chip 디버그를 지원.M: 향상된 Multiplier를 지원.I: 임베디드 ICE(In Circuit Emulator)가 내장되어 있다. - 3단계 파이프 라인을 채택함- 임베디드 시스템 디버깅을 지원하기 위해 임베디드 ICE를 내장함.scan chain0은 이동하면서 프로세서 코어에 나오고 들어가는 신호들을 모두 스캔.scan chain2는 버스들을 관통하지 않고 밑으로 지나가므로 버스와는 상관 없이 임베디드 ICE가 필요로하는 정보를 주고 받을 수 있음- ARM7 코어의 인터페이스 신..
10.1 White Box Test- Output 결과를 비교할 뿐만 아니라 예상된 방향으로 프로그램이 흘러가는지도 비교 하는 것- Black box test와는 달리 내부적인 구조를 살펴봐야 함- Logic coverage의 기준을 만족 시키기 위한 테스트 케이스들을 설계함 .Statement Coverage(문장 검증 기준).Branch Coverage(분기 검증 기준).Condition Coverage(개별 조건 검사).Compound Condition Coverage(다중 조건 검사).Path Coverage(경로 검사) 10.2 Logic Coverage- 다음과 같은 코드와 Flow Chart를 가지고 각 Coverage들을 살펴보자 - Statement Coverage .가장 단순한 검증기준..
10.1 Testing 종류-Testing에는 여러 종류가 있다..Black Box Test, Functional Test, White Box Test, Structural Test, Gray Box Test - Functional Test(또는 Black Box Test와 같음).안의 코드들을 보지 않고 Requirement대로 입력에 따른 적절한 결과가 나오는지 테스트 - Structural Test(또는 White Box Test와 같음).소프트웨어의 구조나 구현사항(코드)들을 토대로 테스트 케이스가 선택됨.이 경우는 단순한 결과값 뿐만 안이라 내부적인 동작 부분(path)도 살피게 됨 - Black Box Test의 경우, 스펙에 명시되어 있지 않은 부분은 테스팅 할 수 없음- White Box ..
8.1 Software Testing이란- 소프트웨어 테스팅은 무엇인가?.품질에 대한 측정.실제 결과와 예상되는 결과 사이의 차이를 확인하는 것.에러를 발견하는것 - 소프트웨어 테스팅을 왜 하는가?.품질보증(QA)안에 검증(verification) & validation(확인) 부분에 Testing이 포함되어 있음.즉, 검증 분야에서 '실행에 기반을 둔 검증 부분'을 테스팅.Verification(검증): 제대로 만들고 있는가에 대한 답변(Internal Process).Validation(확인): 사용될 수있는 올바른 것인가에 대한 답변(External Process) - 디버깅과의 차이.디버깅(Debugging): 찾아낸 에러를 제거하는 것이 목적.테스팅(Testing): 에어를 찾아내는 것이 목적 ..
7.1 Architecture Design- 왜 아키텍처 설계가 중요한가?.실체(아키텍처)를 두고 얘기하게 됨으로 커뮤니케이션의 기반이 될 수 있음.초기 디자인 결정에 중요한 부분 7.1.1 Architecture Style- 아키텍처 디자인을 할 때 여러가지 양식(style)이 존재하며 각 스타일은 다음과 같은 카테고리를 포함.컴포넌트 집함(데이터베이스, 컴퓨터 모듈들).커넥터의 집함(컴포넌트들 사이의 통신).제약사항(어떻게 컴포넌트가 한 시스템으로 통합될 것인가).의미 모델(semantic model: 설계자를 이해 시킬만한 전체적인 시스템의 특징) - 각 양식(style)에 대해 알아보자. - Data Centered Architecture(데이터 중심 아키텍처).데이터 저장공간을 두고 클라이언트가..
8.2 The Advanced microcontroller bus architecture(AMBA)- 다른 마이크로 셀들과의 On chip 연결을 표준화함 - AHB(Advanced High-performance Bus).버스트 모드 데이터 전송과 transaction 분리를 지원함..모든 타이밍이 단일 클락 엣지에서 레퍼런스 됨 - ASB(Advanced System Bus).버스트 모드 데이터 전송을 지원 - APB(Advanced Peripheral Bus).낮은 성능의 주변장치들을 위한 단순한 인터페이스 - Arbitration(중재).Bus transaction가 중앙중재기로 부터의 접근을 요청한 버스 마스터로 인해 초기화가 됨.중재기가 버스안의 우선순위를 결정함- Bus transfer(버스 ..
매우 간단하게 요약해보자 7.1 Software Design(소프트웨어 설계)- Software design(소프트웨어 설계)란, 문제의 요구사항들을 소프트웨어 구조들로 변환하는 과정이라고 본다.- 또는, 목표 소프트웨어를 정의하기 위해 기술들이나 원칙들을 적용시키는 과정으로 본다..여기서 원칙이란 여러가지가 있다.tunnel vision에 어려움이 없어야함Analysis model을 재추적 할 수 있어야 함설계는 코딩이 아님Semantic 에러를 최소화 하도록 review되어져야만 함, 기타 등등 - 설계는 명시된 모든 요구사항들을 구현해야만 한다.- 설계는 알아보기 쉬운, 이해하기 쉬운 가이드가 되어야 한다.- 설계는 소프트웨어의 완전한 모양을 제공해야 한다. 7.2 Fundamental Concep..
6.1 Object-Oriented Concepts- 이 세상의 모든 것이 객체(object)라는 사고방식 - 객체지향의 개념을 이해하기 위해서는 분석 모델의 Class 기반의 요소들을 잘 이해해야 한다.- 객체지향의 핵심개념은 다음과 같다.Classes & Objects.Attributes & Operations.Encapsulation(캡슐화) & instantiation.Inheritance 6.1.1 Classes- 객체 지향적인 사고는 Class의 정의와 함께 시작되었다.- 한 객체의 정의에 대하여 속성들(attributes)과 동작들(operations)을 정의함.- 어느 한 객체의 클래스가 한번 정의되면 그 클래스의 특정 인스턴스가 정의될 수 있다.- Class는 Attribute들을 Ope..
5.1 Behavioral Modeling- 행동적 모델은 소프트웨어가 외부 이벤트들이나 자극에 어떻게 반응을 할 것인지를 가리킨다.- 이 모델을 위해 분석가들은 다음과 같은 것들을 수행하여야 한다..모든 use case들을 평가하여 시스템 내에서 일어나는 상호작용들의 순서들을 완벽히 알고 있어야 함.외부 사건들을 확인하고 이 사건들이 특정 오브젝트와 어떻게 연관이 있는지 이해함.각 use case에 대한 시퀀스(sequence)를 만듦.시스템을 위한 상태 다이어그램(state diagram)을 만듦.behavioral model을 리뷰하여 정확성과 일관성을 확인 5.2 State Representation- Behavioral Modeling에서 대표적인 diagram이 state diagram(상태 ..