전체 글

전체 글

    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에 주..

    지수의 밑변환 공식, 로그의 밑변환 공식 - 개념, 유도, 적용

    1. 개요지수함수와 로그함수로부터 파생되는 지수 방정식, 로그 방정식, 지수 부등식, 로그 부등식을 풀기 위해서는 밑을 같게 만들어줘야다. 서로 다른 지수나 로그의 밑을 같게 만들어주는 작업을 밑변환이라고 하는데 밑변환을 하는 이유는 서로 다른 차원(dimension)에 있는 항들을 같은 선상에서 비교하기 위해서다. 예를들어 우리나라 돈 1000원과 일본 돈 100앤의 가치를 비교하기 위해선 환율을 적용하여 기축통화인 미국 달러로 바꿔서 비교해야 한다. 또한 평균이 60점, 표준편차 10점인 정규분포를 따르는 집단에서 75점을 받은 학생과 평균이 40점, 표준편차 20점인 정규분포를 따르는 집단에서 70점을 받은 학생중 누가 더 우수한 학생인가를 비교하기 위해선 표준화(Z=(X-m)/σ)라는 작업을..

    로그(log) 계산 공식 (상용로그, 자연로그) 총정리

    계산 공식1. 진수와 밑이 동일한 숫자일 때, 지수의 값은 1이다.​ex ) log 4 4 = 1log 8 8 = 1 2. 진수가 어떠한 숫자의 제곱일 때, 제곱은 앞으로 뺄 수 있다.ex)log 2 4 = log 2 22 = 2 log 2 2 = 2log 3 27 = log 3 3 3 = 3 log 3 3 = 3 3. 밑이 동일한 로그끼리의 덧셈은 진수끼리의 곱하기로 합칠 수 있다.ex) log 2 4 + log 2 8 = log 2 32 = 5 log 3 9 + log 3 9 = log 3 81 = 4 4. 밑이 동일한 로그끼리의 뺄셈은 진수끼리의 나누기로 합칠 수 있다.ex)log 2 8..

    [C++] 구조체 바이트 패딩 규칙 코드 (structure byte padding or align rule)

    1. Unless overridden with __declspec(align(#)), the alignment of a scalar structure member is the minimum of its size and the current packing."__declspec(align(#))을 오버라이드 하지 않으면, 스칼라 구조체(long, bool과 같은 일반 변수로만 이루어진 구조체)의 멤버는 변수의 사이즈와 현재 지정된 byte padding align을 따른다." bool과 long으로만 이루어진 각 구조체의 사이즈는 1 byte, 4 byte와 같이 각각의 멤버 사이즈대로 align 되었다.struct Size_1_Align{ bool b;};struct Size_4_Alig..

    플레이어 방향에 따른 발사 위치 변경

    빈 오브젝트를 총기의 끝부분에 설정 후 발사 위치를 설정, 예전에 짠 코드라 많이 지저분함 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Weapon_manager : MonoBehaviour { // 싱글톤 public static Weapon_manager instance; // 플레이어 총기 관련 public Transform player_transform; public GameObject player_gun_prefab; public GameObject weapon_creation_pos_obj; GameObject player_gun_object; GameObject player..

    중앙처리장치(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의 임시 기억 장소로 명령, 주소, 데이터 등을 일시적으로 담아둔다. 다른 기억 장치들에 비해 접..

    [Unity] 그래픽스 퍼포먼스 최적화

    1. 그래픽스 퍼포먼스 최적화 훌륭한 퍼포먼스는 많은 게임의 성공을 결정짓는 중요한 요소이다. 게임의 렌더링 속도를 최대로 끌어올리는 간단한 가이드라인을 아래에 소개한다. 1.1 높은 그래픽스 효과 찾기 게임의 그래픽 부분은 컴퓨터의 GPU와 CPU 시스템에 주로 영향을 준다. 어떤 최적화든 GPU 최적화와 CPU 최적화는 전략이 매우 다르기 때문에 첫 번째로 어디에서 퍼포먼스 문제가 발생하는지 찾아야 한다. 아예 정반대라고도 할 수 있다. 예를 들어, CPU 최적화를 위해 GPU의 작업을 늘리거나 그 반대인 경우가 흔히 발생한다. 일반적인 병목현상과 이를 체크하는 방법: GPU가 종종 필레이트 또는 메모리 대역폭의 제한을 받는다. 디스플레이 해상도를 낮춘 다음 게임을 실행한다. 낮은 디스플레이 해상도가..

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

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