Layer7(18)
-
포인터(Pointer)에 대하여
- 포인터의 정의 포인터란 주소 값을 저장하는 변수를 뜻합니다. - 주소 값이란? 그럼 주소 값이란 무엇일까요? 주소 값의 정의는 데이터가 저장된 메모리의 시작하는 주소를 의미합니다. 이렇게만 말하면 감이 잘 오지 않을 겁니다. 아래에 나와있는 그림이랑 같이 설명을 덧붙혀보겠습니다. int형 변수 a를 선언하고, 여기에 11을 대입한다고 하면 비어있던 메모리의 구조는 그림과 같이 바뀔 것입니다. 그럼 여기서 주소 값은 무엇일까요? 바로 0x01입니다. int형 자료는 메모리에서 4byte만큼의 공간을 차지합니다. 현재 a가 차지하고 있는 메모리는 0x01~0x04까지인데, 여기서 시작 주소는 가장 처음에 나오는 주소를 뜻하는 것이니 0x01이 되는 것입니다. - 포인터에서 쓰이는 연산자 포인터에서 쓰이는..
2021.05.12 -
임베디드(UART 찾기, 칩 종류/역할)
- UART란? 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종 보통은 4핀의 형식으로 구성 되어있다. (*VCC, *RX, *TX, *GND) * 전압 공급(전원 핀) * 데이터 수신 핀 * 데이터 송신 핀 * 보드의 기준 전압을 맞춰주는 핀(그라운드라 부른다) UART의 핀 구조도 알았겠다, 이제 위에 있는 보드 사진에서 어느 부분이 UART 핀인지 알 수 있을 것이다. 사진에서 중앙에서 왼쪽으로 조금 가보면 위와 같이 4핀으로 구성된 무언가를 끼우는 핀홀이 있을 것이다. 이 홀이 UART 홀이다. - 무슨 칩일까?(1) 처음에 보곤 무슨 칩인지 잘 모르겠어서 2분 정도는 고민을 했다. 그러다 칩에 써져있는 MEDIATEK가 회사명, 아래에 적혀있는 것들이 모델명..
2021.04.20 -
Speculation Execution, Meltdown, Spectre에 대하여
- Speculation Execution이란? Speculation Execution은 프로그램의 논리 흐름상 실행 여부가 불확실한 상태에서, 예측 실행을 하는 기법이다. 이렇게만 말하면 이해가 잘 되지 않을 것이다. 그러므로 아래의 예시 if문 코드를 보며 설명을 적어보겠다. #include #include using namespace std; int main(){ int a,b=1; cin>>a; if(a>15){ b=5; } cout15 (true는 3번으로, false는 4번으로 이동) 완료 b=5 실행값 폐기 이렇게 실행을 했을 때의 장점은 시간 단축이다. 위의 과정에서 2단계가 true값으로 나왔으면 굉장한 시간 단축이 될 것이고 false가 나오면 b=5의 실행값을 폐기하여 없던일로 처리한..
2021.04.17 -
Pipelining, Out-of-order Execution, Branch prediction
- Pipelining이란? 명령어를 순차적으로 실행시키는 프로세서에서 적용되는 기술이다. 하나의 명령어를 실행시키면서 동시에 다른 명령어도 순차적으로 실행시키는 기술이다. 이미지로 구현시키면 여러개의 바를 나열시킨 모양으로 그려진다. 이렇게 여러개의 명령어를 동시에 실행시키면서 처리량을 증폭시키는 것이 Pipelining의 핵심 목표다. +) 그렇다고 해서 동작속도가 빨라지는 것은 아니다. - Pipelining의 효율성을 높히기 위한 조건 각 단계별 처리시간이 일정해야한다. 각 명령의 처리단계가 균일해야한다. - Hazard란? 위 조건이 만족되지 않았을 때 발생하는 문제를 뜻한다. - Hazard의 종류? Hazard의 종류는 총 3개가 있다. 구조적 해저드(structural hazard) 데이터..
2021.04.17 -
CPU의 명령어 처리 구조(Fetch, Decode, Execute)
- 간단 설명 CPU의 명령어 처리 구조에서 Fetch, Decode, Execute는 각각 인출, 해석, 실행을 맡고있다. 추가적으로, Writeback 단계는 쓰기를 담당한다. - Fetch 우선 첫 번째 필요한 것은 인출이다. Fetch 단계에서는 CPU가 주기억 장치에서 명령어를 가져온다. 명령어를 가져오기 위해서는 두 가지 장치가 필요하다. 프로그램 카운터(Program counter, PC) 명령어 레지스터(Instruction Register, IR) 여기서 PC와 IR에 대해서 간단하게 정리를 해보자면 PC는 다음에 수행될 명령어의 주소값을 가지고 있는 *레지스터고 IR은 현재 실행중인 명령어를 기억하고 있는 *레지스터다. * CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는..
2021.04.16 -
Flash, ROM, RAM에 대하여 | 컴퓨터의 부팅과정
- Flash란? Flash는 Flash memory를 뜻하는 용어이다. Flash는 EEPROM의 일종이다. (EEPROM이 무엇인지는 아래에 자세하게 설명) 그리고 Flash memory의 특징 중 하나는 비휘발성이라는 것인데 이는 컴퓨터를 껐다가 켜도 데이터가 지워지지 않는 메모리라는 뜻이다. 또한, 전기적으로 Flash 안에 들어있는 데이터를 자유롭게 변경 가능하다. 작고 가벼우며, 기계적인 충격, 고온과 직사광선, 습기에도 강하다. - ROM이란? ROM은 Read Only Memory를 뜻하는 용어이다. 위에 있는 Flash memory와 마찬가지로 비휘발성의 특징을 가지고 있다. 그리고 롬은 읽기만 가능하다. 일반적인 롬은 데이터를 한번 저장하면 지울 수 없이 계속 사용해야하지만 PROM(1..
2021.04.11