[ | Date | | | 2020-10-28 23:04 -0400 | ] |
[ | Mod. | | | 2020-11-07 21:24 -0500 | ] |
This is a random thought.
Hangul is the writing system for Korean. It is sort of a syllabary, like Japanese kana, meaning that there is a short corpus of characters to remember, a few dozen, before being able to know the pronunciation of any written word. For example, the name "Samsung", written in Hangul, is "삼성". One can recognize "s, a, m" and then "s, eo, ng", with three Hangul sub-characters, or jamo, per Hangul character, for a total of six1:
Blocks contain up to five jamo, with constraints on placement. There is a symbol for "no sound", so that all syllables can be written to fit one of the templates.
Itanium is Intel's processor architecture for the 2000s, which faced limited adoption, and got canceled in the late 2010s. Its binary encoding format groups instructions into bundles of three:
An Itanium instruction bundle
Each of the three instructions has a 41-bit opcode, and the template part is 5-bit, for a total of 128 bits per bundle2. The instruction slots do not have room to fully encode an instruction: it is the 5-bit template that indicates which type of instruction each slot contains, completing the instruction opcodes. There is only a small number of different possible template values, restricting which instructions can be bundled together. In some cases, this results in having to leave a bundle incomplete; using a no-op instruction to fill the unused slots.
Conclusion: Hangul writing and the Itanium instruction set seem similar in their construction—small groups of basic elements, that have to work together, with some constraints on how those elements are allowed to group.
Quick links: