-
[Computer Arch.] x86 Flags (Condition Code) & Registers
1. Flags x86 machine에서 사용되는 condition code flags들에 대한 정보는 내부 architecture를 분석하는데 매우 중요하다. 내부 register name은 eflags 라는 이름으로 가져간다. 비트 약어 이름 설명 0 CF Carry Flag 연산시 최상위 비트…
-
[Computer Architecture] rep; ret Instruction for x86-64
x86-64 assembly를 보다 다음과 같은 instruction stream에서 rep; ret라는 instruction이 나왔다. 일단 rep instruction이 쓰이는 이유는 AMD processors’ branch predictors에 문제가 있었다고 한다. ret instruction은 single-byte instruction으로 conditional jump instruction 뒤에 있는 경우…
-
[Computer Arch.] Floating Point Representation
Computer system에선 대부분 정수가 아닌 수를 표기할 때는 IEEE Standard 754 형식의 floating point 표기 방식으로 표현한다. 이는 1) 기존 binary representation으로 표현할 경우 2의 지수승에 대해서만 정확한 소수가 표현 가능하며, 2) 너무나…
-
[Computer Arch.] Carry and Overflow 차이
Computer system에서 arithmetic operation을 하면 연산에 대한 결과를 flag로 나타내는데 그 중에는 zero, negative, carry, overflow 등이 존재한다. 그 중에 carry와 overflow는 혼동하기 쉽다. 8-bit을 기준으로 덧셈 또는 뺄셈을 수행하게 되면 carry 또는…
-
[Computer Arch.] TLB / Page Table
기본적으로 우리가 프로그램에서 사용하는 address는 모두 virtual address를 사용한다. 이러한 virtual address를 통해 physical address memory에 접근하는 기술을 virtual memory라 부른다. Virtual address의 장점은 다음과 같다. Multi process를 동시에 수행 할 때, address…
-
[Computer Arch.] Cache Miss 원인
Processing unit과 memory 사이에 존재하는 cache에서 유효한 address의 data를 포함할 경우 hit, 그렇지 못할 경우 miss라고 부른다. 이 때 miss의 종류는 대표적으로 다음과 같다. Cold (compulsory) miss Capacity miss Conflict miss 1. Cold…
-
[Computer Arch.] Cache 종류
Cache란 processing unit과 memory 사이에 존재하는 data를 저장하는 logic으로 memory access의 긴 latency로 인한 performance overhead를 줄여줄 수 있는 logic이다.Cache Wikipedia 여기엔 다양한 configuration으로 cache를 구성할 수 있는데 대표적으로 크게 3 가지가 존재한다.…
-
[Computer Arch.] Arithmetic Shift / Logical Shift
Computer system에는 크게 두 가지 shift 방식이 존재한다. 1. Arithmetic shift Arithmetic shift의 경우 logical shift와 shift-left의 경우는 동일하지만, shift-right의 경우 sign bit이 그대로 복사된다. 2. Logical shift 위 그림과 같이 logical shift의…
-
[Computer Arch.] Endian
Memory에 data를 저장하는 방식은 크게 두 종류 1) Big endian 2) little endian으로 나뉜다. 기본적으로 register에 저장될 때는 모르지만 memory로 옮겨서 저장할 때는 endian 방식에 따라서 다르게 저장된다. Big Endian 사람이 이해하는 숫자를…
-
[Computer Arch.] False Sharing
멀티 코어 CPU에서 발생할 수 있는 문제다. 멀티 코어 CPU에서는 데이터를 word 단위로 읽어오는 대신 메모리 I/O 효율성을 위해서 cache line로 읽어오는데, 이때 문제가 생길 수 있다. 두개의 메모리 연산이 동일한 cache line에서…