When I last wrote about FSS, I was in the middle of enhancing the waveform viewer so that I myself could use it to debug a real problem in Sputnik's integer multiplier. You'll see those enhancements in Version_0-007 ...

I'm slowly becoming a GUI programmer. I'm not ashamed to admit it. Rather than use a GUI design tool, I'm writing the Java code myself. There are a lot of details (and you will be happy to know that I omit most of them from this blog item), but I learn more this way.

There are horizontal scroll bars now, allowing the user to see the name of the wire and the most interesting time span simultaneously. I fixed a NullPointerException when specifying a nonexistent wire. I added a cursor that snaps to the center of the nearest cycle number when dragged.

By the way, the real integer multiplier problem that I wish to debug is: The cycle when product_valid is first asserted is not consistent, even with the same operands!

Another waveform viewer feature would be useful. I want displayed the cycle number of the current cursor position. It seems from my notes that the point of maximum progress with all of this was 2007-10-24. A couple of good developments have been disruptive since then:

(1) Another person has agreed to informally join Cosmic Horizon. I don't know how much publicity he wants, so I won't use his real name until I get his permission. For now, let's call him J. Peterman.

(2) On 2007-10-16, I accepted a contract position in the Boston area.

(1) and (2) both require VPN access to Cosmic Horizon. I'm slowly becoming a network administrator. I'm not ashamed to admit that either. Suffice it to say that I have had to put a lot of time into solving VPN issues. Peterman has access, but I still don't. On 2007-12-21, I discovered that this damn hotel room is to blame for my inability to access Cosmic Horizon. That problem will be solved one way or another.

Because of (2), I find myself in a Windows environment for software development. That isn't a trivial challenge either. For example, Windows doesn't come with make. Also, WinCvs seems to have corrupted (by inserting 0d before 0a) PNG images used in the FSS GUI. I'll need access to Cosmic Horizon before I can investigate further, so it could be user error.

I have FSS up and running, but it lacks stimulus. Access to Cosmic Horizon could provide either access to my test cases database or access to a SPARC assembler and linker, required by my Random Test Program Generator (RTPG).

Let's see. What else can I complain about? Some messages to alan@alanfeldstein.com are misidentified as spam and therefore not received. Go Daddy Software provides that service, but they have failed to come up with a recipient-side solution.

While we're on the topic of complaints, Apache Axis2 1.3 Release is not available as ADB only. And the development team has not responded to my inquiries.

Let me wrap up this blog item with several miscellaneous paragraphs.

There is now an RSS syndication feed of this blog.

Three months ago on LinkedIn, I wrote about Cosmic Horizon in response to How'd you find the job/career that you LOVE to do today?

I have done some thinking about Cosmic Horizon's next microprocessor: Luna (e.g. considering an architectural description language). Some other notes predate my last blog item, but let me share those thoughts with you now. The Luna microprocessor will be pipelined. Pipelining improves the average execution time per instruction. Starting with Sputnik's multiple-cycle datapath, this reduction can be thought of as decreasing the number of clock cycles per instruction (CPI). Luna will also introduce cache, which means that more realistic simultated memory (i.e. with latency) will be required. In fact, such a simulated memory should be introduced to Sputnik, and Sputnik will need to deal with this latency correctly.

The Mariner microprocessor (Cosmic Horizon's third generation) will be multiple-issue pipelined. Multiple issue clearly focuses on reducing CPI (or increasing IPC).

Creating an assembler and linker in Java would remove RTPG's dependency on Solaris and might make integration with FSS attractive. Creating a disassembler (see Software Requirements Specification) would allow FSS to display instruction memory in another useful format.