mirror of
https://github.com/TomHarte/CLK.git
synced 2024-07-05 10:28:58 +00:00
Adds a note of admission here.
This commit is contained in:
parent
d69aee4972
commit
4aca6c5ef8
@ -334,6 +334,14 @@ class ProcessorStorage {
|
|||||||
A program represents the implementation of a particular opcode, as a sequence
|
A program represents the implementation of a particular opcode, as a sequence
|
||||||
of micro-ops and, separately, the operation to perform plus whatever other
|
of micro-ops and, separately, the operation to perform plus whatever other
|
||||||
fields the operation requires.
|
fields the operation requires.
|
||||||
|
|
||||||
|
TODO: this struct, as currently formed, is 48 bytes large on my 64-bit Intel
|
||||||
|
machine — 8 bytes for each of the pointers, plus 8 bytes for the non-pointer fields.
|
||||||
|
That means that the Program[65536] table is 3mb large. Far too huge for a cache.
|
||||||
|
So slim this, even if it makes things much more painful to dereference.
|
||||||
|
|
||||||
|
(Aside: the compiler seems to prefer 8-byte alignment so eliminating or slimming the
|
||||||
|
non-pointer fields doesn't seem to be helpful immediately.)
|
||||||
*/
|
*/
|
||||||
struct Program {
|
struct Program {
|
||||||
MicroOp *micro_operations = nullptr;
|
MicroOp *micro_operations = nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user