CPU의 캐시 메모리는 성능을 높이기 위한 강력한 수단입니다. 그리고 CPU와 RAM의 속도차이를 극복하기 위해 존재합니다. 그런데 최근에는 CPU의 연산능력에 RAM이 일정 수준 개입하는 방향으로 전환이 일어나고 있습니다. https://youtu.be/aApNYVy1TNU?si=T8u-cv3ucP2xa4EZ CPU와 RAM 속도 차이와 캐시 메모리의 역할 변화CPU는 매우 빠르게 동작하며, 1ns 단위로 작업을 수행하는 반면, RAM은 상대적으로 느려 50ns가 소요된다. 이 속도 차이를 해결하기 위해 캐시 메모리를 활용하게 되었다. L1, L2, L3 캐시를 징검다리처럼 배치하여 RAM과 CPU를 연결해 연산을 효율적으로 수행했다. 그러나 이 패러다임, 즉 CPU가 연산을 담당하고 RAM이 데이터..
CPU가 성능을 높이는 방법으로 클럭속도를 높이거나 코어 개수를 늘립니다. 그러나 내부적으로 보면 더 재밌는 이야기가 숨어 있습니다. 바로 예측해서 연산한다는 것입니다. https://youtu.be/Fnvlujxbqss?si=b2_xivl4myIgkjyQCPU와 RAM 사이의 속도 차이 CPU는 연산장치이며, 중요한 것은 속도이다. 속도가 빠를수록 연산의 양이 늘어나고 처리 성능이 좋아진다. 그래서 클럭 속도를 높이는 방향으로 개발이 진행되다가, 최근에는 코어의 개수를 증가시키는 방식으로 발전하고 있다. CPU의 코어가 연산을 담당하며, 연산에 필요한 데이터는 기본적으로 RAM에 저장된다. 이 데이터를 CPU의 영역으로 옮기고, 연산 후 다시 RAM으로 돌려보내는 작업을 반복한다. 문제는 CPU와 RA..
https://youtu.be/VmclwfKzNO0?si=KnjGslnz3YJxiWk2 DMA(Direct Memory Access)기술을 적용할 경우 불필요한 I/O가 없어지며 성능이 좋아집니다. 보통은 NIC(Network Interface Card)가 DMA를 지원합니다. 또한 이러한 특성을 활용해 빠른 속도로 소켓 통신이 가능합니다.Direct Memory Access(DMA)와 고성능 데이터 전송DMA(Direct Memory Access)를 이야기할 때 항상 따라다니는 키워드는 '고성능'이다. DMA는 컴퓨터의 메모리, 즉 RAM의 일부를 장치를 위해 예약하는 방식이다. 컴퓨터의 메모리는 RAM과 CPU에 위치하며, CPU에는 캐시 메모리와 레지스터 메모리가 포함된다.모든 데이터 전송 과정에서..
https://www.youtube.com/watch?v=V4lp6iGoUFY&list=PLXvgR_grOs1DGFOeD792kHlRml0PhCe9l&index=5 인터럽트의 종류 입출력 인터럽트 (I/O interrupt)입출력 장치가 데이터 전송을 "요구" 하거나, 전송이 "끝나" 다음 동작이 수행되어야 할 경우입출력 데이터에 이상이 있는 경우 내부 인터럽트잘못된 명령이나 잘못된 데이터를 사용할 때 발생하며 Trap이라 부른다.프로그램 검사 인터럽트 (Program Check Interrupt)Division by zero : 컴퓨터의 연산은 덧셈,뺄셈으로 작동한다. 0으로 나눌 경우 무한루프에 빠지게 되며 CPU 가 하드웨어적 손실을 입게 됨Overflow/Underflow기타 Exception 컴..
포트 번호 없애기 (5000) sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000이 명령어는 eth0 인터페이스를 통해 들어오는 TCP 프로토콜의 포트 80(일반적으로 HTTP 트래픽)으로 들어오는 모든 트래픽을 포트 5000으로 redirect 하는 것이다. 이 때 app.py를 재시작하면 포트포워딩이 제대로 되지 않는 경우가 있는데, 이는 iptables 규칙이 기본적으로 메모리에 저장되기 때문이라고 한다. iptables 규칙을 영구적으로 유지하려면 이를 파일에 저장하고, 시스템이 부팅될 때 해당 파일에서 규칙을 불러와야 한다. 이번 경우에는 ssh 명령어와 aws key 를 사용해 서버에..