I just found out that AMD has a GPU named Polaris. This sucks for me. GPUs and CPUs are too close for trademark disambiguation on the basis of design origin or maturity, and AMD has a lot more lawyers than I do (namely, greater than zero). Therefore, I'm looking to pre-emptively avoid a cease and desist from AMD's lawyers for my CPU design.
(The Kestrel Computer Project is no stranger to these things happening; this is not the first time I've had to do a pre-emptive name change. Such is the life of a project with no legal representation or funding.)
This reminds me of when Intel made the decision to adopt the name Pentium instead of market their chips as the 80586. Intel realized that, as long as they tied their architecture to a number, they could not trademark anything about the processor architecture. That was bad for Intel, because it meant competitors like AMD could just implement their own clones and market them as Am586 or some similar part number, with data sheet headings clearly implying Intel compatibility without actually naming Intel or their competitive hardware by name.
I want exactly the opposite for the Kestrel and its chip/core designs. I want wide-spread press, use, cloning, forking, etc. Thus, I think the Kestrel's family of cores need part numbers, not names.
(I know; it's totally arbitrary. But, still...)
All of the nicely marketable numbers are taken though. You know the numbers: those that resonate and leave a mental imprint in your mind of how awesome they were. I'm talking about the 1802, 6502, 65816, 680x0, 6800, 6809, Z80, 9900, 99000, etc. Even Sifive, Inc. is using the technique, with their U500 and E300 products.
Notice a pattern? All of those numbers just roll off the tongue, because, at least in American English, they have between 3 and 5 syllables. Eighteen-oh-two (4), Sixty-five-oh-two (5), Six five eight one six (5), sixty-eight thousand (4), and so forth. It seems that any family number the Kestrel hardware ends up with should similarly have such syllabic constraints. As far as I can tell, only the family name..er..number needs to meet this constraint. Example: neither Motorola's 68882 nor Commodore's 6561 number complies (7 and 6 syllables, respectively, again assuming American English).
I'd love feedback on this; what number should I use to identify a family of Kestrel-related FPGA cores? Remember that the family includes not only better CPUs, but also peripherals as well. Some cores I have so far:
- S16X4A 16-bit MISC processor (powers Kestrel-2)
- KIA, the Keyboard Interface Adapter for the Kestrel-2
- GPIA, the General Purpose Interface Adapter for the Kestrel-2
- MGIA, the Monochrome Graphics Interface Adapter (640x200) for the Kestrel-2
- S64X7A 64-bit MISC Forth processor
- Polaris 64-bit RISC-V (RV64IS ISA) processor
I have plans to make the following:
- KIA-II, a slightly enhanced KIA for the Kestrel-3
- GPIA-II, a 64-bit refresh of the GPIA, also for the Kestrel-3
- MGIA-II, a 640x480 update of the MGIA, also for the Kestrel-3
- CGIA, the Configurable Graphics Interface Adapter, also for the Kestrel-3, eventually to replace the MGIA-II.
- An asynchronous RAM interface for first-generation Kestrel-3 designs.
- A synchronous DRAM interface for next-generation designs.
Longer term, I am going to consider a variety of updates to the processor too, including more aggressive pipelining; M, F, and D ISA extensions, MMU support, caching, etc. (At least up until the point that porting Rocket core directly becomes feasible.) If I stuck with names, then Polaris-II, Polaris-III, etc. are natural names for the enhancements. But, if I don't have names?
What do you think? Let me know in comments. Thanks!
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Thought to myself: "CSG used 45, 65, 75, and 85 prefixes for their parts. Maybe I can use 55. CPU can be KCP55000, MGIA can be KCP55001, etc. I kinda like it!"
Refining the thought further, maybe 51xxx for Kestrel-1, 52xxx for Kestrel-2, and 53xxx for Kestrel-3? Hmmm.
Are you sure? yes | no
Feedback recorded from Twitter for posterity: 69000, "Sinciput" (good family name, if a number cannot be decided on), K1000, 666502 (LOL), and something in the Nxxxx family (where N != 2 (Alpha), 3 (NS32000), 6 (Motorola 68K), 8 (Intel), or 9 (TI)). Also, -1/12 and 0.577. Also, KRP01 (for Kestrel RISC Processor #1).
Are you sure? yes | no