CS

    [UML] 다이어그램 종류 및 특징 (구조별, 행위별)

    구조 다이어그램Class Diagram(클래스 다이어그램): 클래스의 속성, 함수, 변수타입들로 구성된 다이어그램.  Object Diagram(객체 다이어그램): 클래스의 인스턴스, 값이 매겨진 행동을 가지고 있는 독립된 객체정보를 표현하는 다이어그램. Package Diagram(패키지 다이어그램): UML의 다양한 모델요소를 그룹화한 다이어그램. Component Diagram(컴포넌트 다이어그램): 컴포넌트끼리의 구조 관계를 표현한 다이어그램. Deployment Diagram(배치 다이어그램): 소프트웨어, 하드웨어 등을 포함한 시스템의 물리적인 구조를 나타내는 다이어그램. 행위 다이어그램Use Case Diagram(쓰임새 다이어그램): 사용자 관점에서 바라본 시스템을 표현한 다이어그램. Ac..

    부동 소수점 오차 (개념)

    실수 표현 방식컴퓨터는 모든 수를 0과 1로 이루어진 2진수로 표현한다. 이것은 정수뿐만 아니라 소수점이 존재하는 실수도 마찬가지이다.  정수의 경우 이러한 표현이 간단하지만, 실수를 2진수로 표현하는 것은 복잡하다. 실수를 표현하기 위한 다양한 방법들이 연구되었으며 현재는 크게 2가지 방식이 존재한다.고정 소수점 (fixed point) 방식부동 소수점 (floating point) 방식고정 소수점 (fixed point) 방식실수는 보통 정수부와 소수부로 나눌 수 있다. 따라서 실수를 표현하는 가장 간단한 방법은 소수부의 자릿수를 미리 정하고, 고정된 자릿수의 소수를 표현하는 것이다.32비트 CPU에서 고정 소수점 방식으로 실수를 표현하면 위와 같다.하지만, 이 방식은 정수부와 소수부의 자릿수가 크지..

    스택 포인터

    스택FILO(First In Last Out)형태로 데이터를 액세스하는 데이터 구조이다. 즉, 가장 나중에 들어온 것부터 차례로 액세스하는 것이다. Heap은 Stack과 반대로 FIFO형태로 데이터를 액세스한다. 스택은 한 곳으로만 액세스할 수 있으며, 이부분을 스택의 탑이라고 한다. FILO의 액세스 순서 : 5 → 4 → 3 → 2 → 1FIFO의 액세스 순서 : 1 → 2 → 3 → 4 → 5 중앙처리장치는 기억장치의 특정 영역을 스택 영역으로 지정하여 운영한다.  스택에 저장되는 데이터의 크기는 레지스터의 크기, 데이터 버스의 폭과 같다. 즉 스택은 컴퓨터의 단어(word)단위로 액세스 된다. 만일 기억장치가 바이트 단위로 구성되어 있고 레지스터의 크기가 16 비트이면, 두 개의 기억장소에 한개..

    CISC / RISC 개념 및 차이

    1) CISC / RISC의 개념CPU(중앙처리장치) 를 설계하는 방식이다.CPU가 작동하려면 프로그램이 있어야 하고 명령어를 주입해서 설계를 한다.-명령어가 H/W 적인 방식을 RISC라고 한다.-명령어가 S/W 적인 방식을 CISC라고 한다.2) CISC (Complex Instruction Set Computer)복잡하고 많은 종류의 명령어와 주소 지정 모드를 사용한다.가변 길이 명령어 형식이다.100개 ~ 250개 정도의 많은 명령어를 가지고 있어 설계가 어렵다.마이크로 프로그래밍(S/W) 제어 방식이다.명령어가 S/W적이므로 호환성이 좋다.명령어를 해석한 후에 명령어를 실행한다.컴파일 과정이 쉽고, 호환성이 좋다는 장점이 있지만 속도가 느리다.intel 사의 CPU에 주로 사용되었다.3) RIS..

    중앙처리장치(CPU) - 3 (CPU 명령어 사이클)

    CPU 명령어 사이클(instruction cycle) 마이크로프로세서(CPU)가 메모리로부터 프로그램 된 한개의 기계어 명령어를 가져와 어떠한 동작을 요구하는지를 결정하고 명령어가 요구하는 동작을 수행하는 연속적인 동작 과정이다. 즉, 명령어를 꺼내와 실행하기 위한 연속적인 동작 과정이다. 명령이 순환하는 동안 CPU에 사용되는 회로는 다음과 같다. PC : 다음에 실행할 명령어에 대한 메모리 주소를 추적 MAR : 다음에 실행할 명령어의 메모리에 있는 주소를 보관 MBR : 메모리로부터 페치(fetch)되어 cpu가 처리할 준비가 된 데이터나 메모리에 저장되어 대기 중인 데이터를 보관하는 양방향 레지스터 IR : 메모리로부터 fetch 되는 (현재 실행할) 명령어를 일시적으로 보관하는 영역 CU : ..

    중앙처리장치(CPU) - 2 (CPU 명령어)

    마이크로 연산(micro-operation) CPU에서 한 클럭 펄스(clock pulse) 동안에 일어나는 세부 동작이다. micro-ops 또는 μops 로도 표시 기계어 또는 어셈블리 명령어는 여러 개의 마이크로연산이 합쳐진 일종의 매크로(macro) 명령어 형태이다. 따라서, 하나의 CPU 명령어는 여러 개의 클럭 펄스를 필요로 한다. 명령어 세트(Instruction Set) CPU가 이해하고 동작시킬 수 있도록 정의되는 명령어들의 집합이다. 컴퓨터구조의 일부이기 때문에 ISA(Instruction Set Architecture)라고도 한다. CPU마다 명령어의 길이나 구조가 다를 수 있다. 즉, 같은 C언어로 작성된 코드라도 다른 CPU에서 동작하게 하려면 다른 컴파일러의 도움이 필요하다 명령..

    중앙처리장치(CPU) - 1 (CPU 구조)

    CPU란? 명령어를 해석하여 실행하는 장치로 인간으로 치면 두뇌에 해당하는 하드웨어 장치이다. (CPU를 흔히 Processor 라고도 한다.) CPU 구성 요소 연산 장치(ALU, Arithmetic and Logic operation Unit) : 산술 및 논리 연산 장치 산술 연산(덧셈, 뺄셈, 곱셈 나눗셈 등)과 논리 연산(AND, OR 등)을 수행 제어 장치(Control Unit) 프로그램에서 주어진 명령을 '해석'하고 이를 '실행'하기 위해 제어신호를 만든다. 연산, 읽기, 쓰기 등의 동작신호와 각 장치를 제어하기 위한 타이밍(timing) 신호를 때맞춰 만든다. 레지스터(register) cpu의 임시 기억 장소로 명령, 주소, 데이터 등을 일시적으로 담아둔다. 다른 기억 장치들에 비해 접..

    스택 포인터와 프레임 포인터

    스택 프레임 (Stack Frame) 기본적으로 함수가 호출될 때마다 전달한 인자와 정의한 지역(자동) 변수가 높은 주소부터 낮은 주소의 방향으로 차례대로 저장되는 구조이다. 이외에도 다른 함수를 호출할 때 복귀할 주소(다음 실행할 명령어의 주소), 프레임 포인터 및 보존되는 레지스터들이 스택에 저장된다. 스택 포인터는 함수 호출 시작부터 피호출 프로그램이 실행되는 단계 차례대로 저장되는 값들을 저장하기 위해 현 시점에서 저장할 메모리의 위치를 가리킨다. 스택 프레임에 저장되는 값 - 복귀 주소 - 호출자 루틴의 프레임 포인터 - 사용하던 보존 레지스터 - 피호출자에 전달하는 인자 - 피호출자에서 사용되는 지역 변수들 프레임 포인터 (Frame Pointer) 함수 호출이 끝난다면 상위 호출로 돌아기전에..

    레지스터 (Register)

    정의 - 명령어를 실행하기 위해 필요한 데이터와 상태, 명령어를 저장하는 기억 소자 - CPU 내부에 존재하며, 기억 장치 중 가장 빠르며 용량이 작음 - 데이터 레지스터와 제어용 레지스터로 구분 데이터 레지스터 - CPU가 명령어를 처리하는 과정에서 임시로 처리할 데이터를 저장하거나 메모리의 주소를 저장할 목적으로 사용 - 데이터 레지스터 (Data Register), 주소 레지스터 (Address Register), .범용 레지스터(General Register)로 구분 1) 주소 레지스터 스택 포인터 (SP , Stack Pointer) - CPU는 현재 실행하고 있는 프로그램의 메모리 영역을 스택으로 관리 - SP는 현재 스택 영역에서 가장 마지막 부분 (가장 최근에 저장된)을 가르킴 베이스 포인..

    가상 메모리와 가상 주소 공간

    가상 메모리와 가상 주소 공간 서로 다른 개념이지만 혼용되서 사용된다. 가상 주소 공간은 각 프로세스 당 주어지는 논리적인 공간이다. 가상 주소 공간의 크기는 물리 메모리(RAM)의 크기와는 독립적이며, 레지스터 크기에 종속적이다. Word Size가 32비트인 컴퓨터의 경우, 일반적으로 레지스터의 크기도 32비트다, 이는 2^32 개의 주소를 나타낼 수 있음을 의미하고, 1 바이트당 주소가 주어지므로 최대 4GB의 가상 주소 공간을 갖을 수 있다. 같은 원리로 64비트 컴퓨터의 경우 2^64 바이트(16 엑사 바이트) 크기의 가상 주소 공간을 갖을 수 있게 된다. 프로세스의 주소 공간은 페이지(Page) 단위로 관리된다. 가상 주소 공간의 주소를 논리 주소라고 하는데, 모든 논리 주소가 반드시 물리적인..