You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
x86 userland minimal examples. Hundreds of runnable asserts. Linux focus for now, but highly OS portable. Containers (ELF), linking, calling conventions. System land at: [x86 Bare Metal Examples](https://github.com/cirosantilli/x86-bare-metal-examples)
5
+
x86 userland minimal examples. Hundreds of runnable asserts. Containers (ELF), linking, calling conventions. System land cheat at: <https://github.com/cirosantilli/x86-bare-metal-examples>
Microcontrollers are small SoCs... memory is inside chip.
8
+
9
+
They have IO dedicated pins.
10
+
11
+
TODO: response time is smaller.
12
+
13
+
TODO: most have predictable instruction times, and are better for hard real time.
14
+
15
+
TODO: the latency between signal and result is smaller
16
+
17
+
TODO: often programmed to run on bare metal, while microprocessors are more often programmed to run on top of an OS (e.g. Linux). But there are also OSes for microcontrollers, mostly real time ones: <http://www.embedded.com/design/operating-systems/4425751/Comparing-microcontroller-real-time-operating-systems>, e.g. QNX. Those OSes can even implement the POSIX C API.
18
+
19
+
Microcontrollers can have either internal or external clock sources: <http://electronics.stackexchange.com/questions/15455/internal-or-external-oscillator> TODO CPUs?
Copy file name to clipboardExpand all lines: other-architectures.md
+5-24Lines changed: 5 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,28 +4,6 @@ This tutorial focuses only on the x86 architecture families.
4
4
5
5
Here are some other popular architectures which you should have in mind as well:
6
6
7
-
## ARM
8
-
9
-
<https://en.wikipedia.org/wiki/ARM_architecture>
10
-
11
-
Great majority of mobile phones.
12
-
13
-
Low power consumption.
14
-
15
-
RISC.
16
-
17
-
armv7 is a version of arm that added floating point operations: <http://stackoverflow.com/questions/7080525/why-use-armeabi-v7a-code-over-armeabi-code>
18
-
19
-
### Open implementations
20
-
21
-
<https://en.wikipedia.org/wiki/Amber_%28processor_core%29> TODO how does it compare in performance / cost?
22
-
23
-
ARM has already sued people in the past for implementing ARM ISA: http://www.eetimes.com/author.asp?section_id=36&doc_id=1287452 so not open.
> Asanovic joked that the shortest unit of time is not the moment between a traffic light turning green in New York City and the cab driver behind the first vehicle blowing the horn; it’s someone announcing that they have created an open-source, ARM-compatible core and receiving a “cease and desist” letter from a law firm representing ARM.
28
-
29
7
## PowerPC
30
8
31
9
<https://en.wikipedia.org/wiki/PowerPC>
@@ -48,11 +26,14 @@ Officially supported on Android.
Lextra story: <http://probell.com/lexra/> It is not possible to patent an entire ISA as there is too much prior art, but companies patent instead specific novel instructions, and the compatibility break kills off reimplementors.
30
+
51
31
### Open implementations
52
32
53
-
Seems closed?
33
+
Seems closed? TODO legal?
54
34
55
-
Open implementation: <https://brej.org/yellow_star/> TODO legal?
2016 thesis on it: <http://www.eecs.berkeley.edu/~waterman/papers/phd-thesis.pdf>
32
+
- functional: assembly comes in and is emulated. Faster. Does not use the hardware implementation at all, and therefore does not test it: what is does test are software tools like compiler and kernel ports. May or not be cycle accurate as well, with performance hit if yes.
33
+
- RTL: the entire hardware is emulated. Slower, but more precise. You need the underlying hardware implementation. Always cycle accurate.
46
34
47
35
## lowRISC
48
36
@@ -53,6 +41,8 @@ RISC-V ASIC and FPGA implementation.
53
41
54
42
RISC-V is only the API.
55
43
44
+
Uses Rocket, but one major innovation is that it includes IO devices, while Rocket needed an ARM IP for that: <https://youtu.be/9BU5yNeyI5k?t=91>
45
+
56
46
Mass production planned for 2017: <http://www.lowrisc.org/about/>
57
47
58
48
By Cambridge people.
@@ -63,9 +53,37 @@ Google summer of code projects in 2016: http://www.lowrisc.org/blog/2016/03/appl
63
53
64
54
Initial implementation reuse part of FPGA hardware: http://www.lowrisc.org/docs/untether-v0.2/ , they are trying to open things up further.
65
55
56
+
Uses Verilator for simulation.
57
+
58
+
## Rocket
59
+
60
+
Tooling to generate Chips.
61
+
62
+
<https://github.com/ucb-bar/rocket-chip>
63
+
64
+
Uses Chisel, which is Scala based: <https://github.com/ucb-bar/chisel>
65
+
66
+
Used by lowRISC.
67
+
68
+
By Berkley people.
69
+
70
+
2015 presentation by Yunsup Lee <https://www.youtube.com/watch?v=Ir3h3qWcNlg>
71
+
72
+
A single source code + some input parameters can generate:
73
+
74
+
- C++ simulator code
75
+
- FPGA Verilog
76
+
- ASIC Verilog
77
+
78
+
TODO: any plans for silicon production?
79
+
80
+
http://www.lowrisc.org/docs/untether-v0.2/
81
+
82
+
2016 thesis on it: <http://www.eecs.berkeley.edu/~waterman/papers/phd-thesis.pdf>
83
+
66
84
## SiFive
67
85
68
-
http://sifive.com/
86
+
<http://sifive.com/>
69
87
70
88
Startup around RISC-V tech by Berkley people, contributors to <https://github.com/riscv/riscv-tools>
71
89
@@ -83,7 +101,7 @@ The project owner works at Rackspace, who is partnering with Google for open sou
83
101
84
102
## OpenRISC
85
103
86
-
https://en.wikipedia.org/wiki/OpenRISC
104
+
<https://en.wikipedia.org/wiki/OpenRISC>
87
105
88
106
LGPL / GPL. TODO: history?
89
107
@@ -97,6 +115,8 @@ ETH Zurich.
97
115
98
116
Previously closed source custom ISA I think, then opened and front-end hacked for RISC-V.
0 commit comments