1.
Desktop 컴퓨터와 스마트폰이 있습니다. HTS와 MTS를 설치하였습니다. 주식거래를 합니다. 과거 같으면 상상할 수 없는 일입니다. 휴대폰으로 거래하던 시절이 있었습니다만 현재와 다른 경험이었습니다.
위의 그림에서 좌측이 컴퓨터에 들어간 마더보드입니다. CPU를 포함한 다양한 주변기기들을 붙여서 컴퓨터가 됩니다. 우측은 휴대폰에 들어간 보드입니다. 같은 컴퓨터인데 크기도 작지만 데스크탑과 같은 기능을 합니다. 어떻게 이런 일이 가능할까요? 해답은 SoC=System on Chip입니다. ? 우측에 있는 칩(Chip)이 좌측에 있는 CPU, Video, I/O등을 합한 기능을 수행합니다.
가끔 하드웨어와 관련한 기술을 소개하였습니다. 대표적인 기술이 FPGA와 GPU입니다. 이와 다른 기술을 지난 주에 들었습니다. 지난 주 목요일 알고리즘포럼 준비모임이 있었습니다. 참석자중 FPGA와 비슷한 기술로 Low Latency Trading System을 개발하는 곳이 있다고 들었던 차 어떤 기술인지 여쭈어 보았습니다.
“FPGA기술인가요?”
“FPGA기술은 아니고 칩에 여러가지 기능을 넣어서 이것을 통해 트레이딩하는 기술입니다.”
그래서 찾아보니 SoC입니다. System on Chip의 약자입니다.
SoC: The Force That Rules All Smartphones and Tablets
SoC를 다른 것과 비교해 보죠. 먼저 SoC와 CPU의 차이를 보죠. CPU와 관련한 다양한 기술이 있고 CPU가 컴퓨터 성능에 가장 큰 부분을 차지한다고 하더라도 CPU는 결국 Fast calculator입니다.
?It fetches data from memory, and then performs some kind of arithmetic (add, multiply) or logical (and, or, not) operation on that data. The more expensive/complex the CPU, the more data it can process, the faster your computer.
반면 SoC는 말 그대로 여러가지 기능을 하나의 칩으로 만든 것입니다. 단순히 CPU뿐 아니라 GPU (a graphics processor), memory, USB controller, power management circuits, ?wireless radios (WiFi, 3G, 4G LTE, and so on)을 포함한 기술입니다. 때문에 SoC의 장점은 크기와 넓이입니다. 때문에 SoC기술은 스마트폰과 같은 휴대기기에 널리 채택되고 있습니다. 단점은 확자성입니다. 스마트폰을 구매한 후 메모리용량이 부족하다고 해서 메모리를 늘릴 수 없는 것과 같은 이치입니다.
SoC vs. CPU ? The battle for the future of computing
2.
SoC를 이용한 어플리케이션은 어떻게 동작할까요? SoC, ASIC등의 차이점을 소개한 글에 다음과 같은 문장이 있습니다.
ASICs, ASSPs, and SoCs offer high-performance and low power consumption, but any algorithms they contain — apart from those that are executed in software on internal processor cores — are “frozen in silicon.”
Ask Max: ASICs vs. ASSPs vs. SoCs vs. FPGAs중에서
SoC는 CPU에서 돌아가는 소프트웨어와 하드웨어로 논리화한 알고리즘으로 동작합니다. 스마트폰을 생각하면 CPU에 돌아가는 소프트웨어가 iOS나 안드로이드같은 OS겠죠. 하드웨어로 논리화한 알고리즘은 통신프로토콜, 멀티미디어프로토콜과 같은 알고리즘들이 아닐까 합니다.
다시 처음으로 돌아갑니다. SoC를 Low latency Trading이나 HFT에 이용한다면 어떤 그림일까요? Linux와 같은 OS를 탑재합니다. TCP/IP와 같은 통신프로그램은 Chip으로 대체가 가능합니다. 이미 TOE와 같은 기술은 TCP/IP Stack를 ?Chip로 대체합니다. 트레이딩 알고리즘이 남습니다. 여기서 의문이 듭니다. HFT에서 사용하는 알고리즘을 적용하려면 주파수가 높은 멀티코어가 필요한데 ?크기에서 이익을 얻는 SoC에서 충분한 CPU파워를 제공할 수 있을지 궁금합니다.
아마도 여기서 FPGA가 등장하지 않을까 추측합니다. 요즘 나오는 FPGA는 ?CPU를 탑재한 제품들이 많습니다. 나아가 Soc를 적용한 칩을 이용한 FPGA제품이 없으리란 보장도 없습니다. Altera사의 경우 SoC와 FPGA를 결합한 제품을 선보이고 있네요.
그러면 SoC가 최근 Low Latency때문에 각광을 받고 있는 FPGA와 다른지 아니면 같은 기술인지 궁금합니다. ?만약 FPGA를 CPU가 없는 프로그래밍이 가능한 논리회로하고 정의하면 SoC와 다르다고 할 수 있습니다. 그렇지만 85년이후 계속 FPGA기술이 발전하였고 앞서 Altera와 같이 Core Processor를 가지고 있는 FPGA기술을 고려하면 차이가 애매합니다.
여기서 재미있는 개념이 나옵니다. Hard CPU와 Soft CPU입니다.
FPGA (Field Programmable Gate Array) devices are particularly suitable for parallel algorithms implementation. However, sequential algorithms, especially those that don’t demand huge processing power, are easier to implement as a program for a microprocessor.
In many applications it would be convenient to have both a microprocessor and an FPGA array. Of course, one can have a separate RISC CPU and FPGA chips. But they can be also combined in one chip, leading to less power consumption, simpler board layout and fewer problems with signal integrity and EMI (electromagnetic interference).
Soft CPU cores are usually used to create an FPGA-based system-on-chip (SoC). In this case a CPU core controls the work of the circuit and does some random calculations, and the other parts of the circuit are responsible for interfacing and parallel processing.
Hard vs Soft CPU Cores
There are two types of CPU cores for FPGA: hard and soft. Hard CPU core is a dedicated part of the integrated circuit, whereas soft CPU core is implemented utilizing general-purpose FPGA logic cells.
Soft CPU Cores for FPGA중에서
3.
트레이딩을 위해 사용하는 SoC기술이 FPGA와 SoC기술을 결합한 것으로 이해하렵니다. 사실 FPGA도 충분히 이해하지 못합니다. ASIC이나 SoC도 충분하지 못합니다. 그런데 월스트리트가 이런저런 기술들을 소개하고 한국으로 들어옵니다. ?경쟁을 힘들더라도 이해는 해야 하지 않을까 해서 정리했습니다. 한번 정리를 했으니 조금씩 조금씩 이해를 높히면 됩니다.
몇 번 소개하였던 미국의 황현철씨가 이런 말을 하더군요. 똑같지 않지만 의미는 비슷합니다.
?”미국의 HFT가 새로운 기술을 도입하고 개발하는 것은 규모가 다르기때문입니다. 규모도 다르고 그에 따라 목표로 하는 수익도 다르기때문에 대규모 투자도 가능합니다. 때문에 FPGA든 무엇이든 남과 다른 기술을 도입하려고 합니다. 남과 달라야 다른 수익을 얻기때문이죠.”
주체가 없는 기술은 없습니다. 어떤 주체가 운용하느냐에 따라 기술의 의미가 달라집니다. 똑같은 FPGA라 하더라도 부가가치를 만들 수 있지만 어떤 경우 부담입니다. 이에 대한 판단과 선택은 전적으로 자신의 몫입니다.