Slashdot Mirror


Imagination To Release Open MIPS Design To Academia

DeviceGuru writes: Imagination Technologies has developed a Linux-ready academic version of its 32-bit MIPS architecture MicroAptiv processor design, and is giving it away free to universities for use in computer research and education. As the MIPSfpga name suggests, the production-quality RTL (register transfer level) design abstraction is intended to run on industry standard FPGAs. Although MIPSfpga is available as a fully visible RTL design, MIPSfpga is not fully open source, according to the announcement from Robert Owen, Manager of Imagination's University Programme. Academic users can use and modify MIPSfpga as they wish, but cannot build it into silicon. "If you modify it, you must talk to us first if you wish to patent the changes," writes Owen.

63 comments

  1. Talk to us first if you wish to patent the changes by Bruce+Perens · · Score: 1

    It's very common these days for companies to allow universities to use their technology at the cost of tying the company into the university's patent revenue. And of course this is often publicly-funded research, so not only is the taxpayer paying for the development of patents used to sue that same taxpayer, the patents go directly to a company from academia.

    The net effect is to feed intellectual property centered companies at the expense of the technology sector in general and small technology companies in particular.

  2. OpenRISC by Bruce+Perens · · Score: 1

    See OpenRISC, which IMO provides a better path for academia.

    1. Re:OpenRISC by Anonymous Coward · · Score: 0

      Nice call. I purchased the OpenRISC dev. fpga board, and it does in fact boot Linux from a synthetic processor.

      Turned out the instructions I wanted to add to the design were REALLY HARD, but I don't think being open source could fix that.

    2. Re:OpenRISC by Anonymous Coward · · Score: 0

      Also try riscv

    3. Re:OpenRISC by ssam · · Score: 1
    4. Re:OpenRISC by unixisc · · Score: 1

      Ok, I didn't see this post of yours before my earlier post above

    5. Re:OpenRISC by Bruce+Perens · · Score: 1

      No problem. I wouldn't want to discourage anyone from pointing that out, I actually don't sit at my keyboard waiting for Slashdot stories all day and count on the rest of you folks to set people straight :-)

    6. Re:OpenRISC by Bruce+Perens · · Score: 3, Informative

      Check out My Gate Array Project if you haven't already done so. The EE work is done by Chris Testa KD2BMH, I mostly do systems programming and business but do a lot of design checks, etc.

    7. Re:OpenRISC by TheRaven64 · · Score: 2

      It's not clear what version of the MIPS ISA they're implementing (the article I read just said MIPS32, which covers a whole range of things). It sounds like it's MIPS32r6, which is not backwards compatible with any previous MIPS version. The only value of MIPS over something like RISC V (which is increasingly the standard ISA for computer architecture research) is that there's a large body of existing software for it, so you can do real evaluation.

      We've done a clean-room reimplementation of MIPS III (R4K compatible) implementation in BlueSpec, which is a high-level HDL. MIPS III and the R4K are over 20 years old, so any architecture-specific patents will have expired. In comparison, this core is only 32-bit (really not interesting for research) and is written in a low-level HDL (making the kind of invasive changes that you want to do in research difficult), and is an ISA that has very little software support.

      --
      I am TheRaven on Soylent News
    8. Re:OpenRISC by unixisc · · Score: 1

      Does RISC-V follow the MIPS instruction set AT ALL? Or is it something invented from scratch? The site says variable 32/64/128 bit address space - does that mean the ALU and registers are statically or dynamically configurable to have variable lengths?

    9. Re:OpenRISC by TheRaven64 · · Score: 1

      Does RISC-V follow the MIPS instruction set AT ALL?

      It's an entirely new ISA that is intended to be freely licensable.

      The site says variable 32/64/128 bit address space - does that mean the ALU and registers are statically or dynamically configurable to have variable lengths?

      There are 32-bit and 64-bit variants of the ISA (128-bit is coming). It also includes a variable-length instruction encoding (though currently all instructions are 32 bits) so that it's easy to extend (finding gaps in the MIPS opcode space can be challenging).

      --
      I am TheRaven on Soylent News
  3. Confused by msobkow · · Score: 1

    ...cannot build it into silicon.

    Isn't the whole point of an FPGA being able to "burn" a design into a chip rather than "building" it? Are they saying you can only run your modifications through a simulator instead of burning an FPGA to test it?

    If so, what's the point of the exercise? Wouldn't it make more sense to have students play with an open sourced or freeware design that they can actually implement and test?

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:Confused by Anonymous Coward · · Score: 0

      Implementing a design on an FPGA is NOT "burning it to silicon". FPGAs are much more like software on a platform where the machine code is a list of gate switches. Designs are not permanent on silicon. They load volatile "software" and run the "software" just like a CPU does.
      Just like you can take a software design in RAM and burn it into a ROM, you can take an FPGA design and make an ASIC.

    2. Re:Confused by msobkow · · Score: 1

      You burn an EEPROM so I was using the same terminology. It's still usually called "burning" even though you can re-burn the same device with different code.

      --
      I do not fail; I succeed at finding out what does not work.
    3. Re:Confused by msobkow · · Score: 1

      But I was under the mistaken impression that one could only burn an FPGA once. Thanks for clarifying that they can be reused.

      --
      I do not fail; I succeed at finding out what does not work.
    4. Re:Confused by alexvoica · · Score: 1

      FPGAs are usually used for prototyping although they have been used recently in application-specific cases (e.g. OpenCL acceleration for automotive or networking). Basically, FPGAs are programmable logic arrays which are re-arranged logically according to the hardware description language used (e.g. Verilog). Every time you change the RTL code, you have to go through a flow: translate (merges the incoming netlists and parameter constraints into a design file), map (fits the design into the available resources on the target device, and optionally, places the design), place and route (places and routes the design to the timing constraints), generate programming file (creates a bitstream file that can be downloaded to the device), When you have the bitstream file, you download it to the FPGA.

    5. Re:Confused by Anonymous Coward · · Score: 0

      Yup.

      Source code -> "builder/compiler" -> bit stream (machine code) -> FPGA, loaded dynamically with volatile data.

      FPGAs are platforms which run software.

    6. Re:Confused by Chaset · · Score: 1

      You're thinking the old style fused FPGAs. They're still used for some special applications where flipping a bit is catastrophic. Most FPGAs these days are SRAM based and load their program from flash/EEPROM on every power-up. Nothing is "burned" on the FPGA per se.

      --
      -- "This world is a comedy to those who think, a tragedy to those who feel."
  4. Re:Talk to us first if you wish to patent the chan by tlhIngan · · Score: 1

    It's very common these days for companies to allow universities to use their technology at the cost of tying the company into the university's patent revenue. And of course this is often publicly-funded research, so not only is the taxpayer paying for the development of patents used to sue that same taxpayer, the patents go directly to a company from academia.

    Well, it's "talk to us first" which probably means "if you want to patent this, you're going to have to license it to us" sort of deal.

    I mean, think about it - the company is offering researchers the chance to work on a live product. If the researchers generate something good, then patent it, the company could find that it is hamstrung because the university it gave research materials to has now blocked it from producing the next-generation product.

    Basically the companies want to give researchers materials they need to do their research, but they're also not wanting to shoot themselves in the foot for their generosity (which often includes engineering support at the highest levels) by now being forced to pay huge sums of money for the privilege of furthering research.

    So there are several reasons.

    One is simple fairness - materials were provided for your research and it would be appreciated to not bite the hands that feed you. So if something gets patented, then perhaps a license to use those patents can be negotiated, with a slight discount

    If it results in patents that others are licensing, then maybe a tiny royalty for providing the materials to fund the research.

    If a university objects, the simple answer is to not accept the offer and to use other materials.

    It's really no different than if a company provided funds for a research grant, except instead of providing cash, they're providing materials.

  5. Open by Anonymous Coward · · Score: 0

    This is fake openness of the microsoftian sort.

    The line about patenting, of course is completely bizarre, as it's unrelated to the previous line about building.
    I'm not sure if Own is trying to intentionally confuse the issue, or if he himself has completely lost the plot.

  6. It's marketting, not "open source". by Anonymous Coward · · Score: 0

    It's only "free" for academia. Virtually every single "soft" technology product anywhere should be 100% free for education and academic use. If you don't understand why, I hope you don't work in marketing.

    This is really about a slow company getting this. It's not open-source, it's just good marketing.

    On another note, for any company which doesn't give away soft products free for academic/educational use should fire their entire marketing team.

    1. Re:It's marketting, not "open source". by Bruce+Perens · · Score: 1

      It's only "free" for academia.

      Not even them. This is a lure for universities to create tech that they are not allowed to produce in hardware, but the company that provided the original tech can monetize.

    2. Re:It's marketting, not "open source". by alexvoica · · Score: 1

      It is not a lure, the terms of the agreement are clear: 1) you are not allowed to put into silicon and 2) you must consult with Imagination before you change it. Most universities teach courses based on MIPS CPUs so having access to the real RTL code was something they were very excited about - this is relevant in the quotes from many well-known professors. http://www.imgtec.com/news/det... If these highly respected professors thought this was a lure and unethical, they would not have signed up for the programme. The reality is we've consulted with tens of universities and this is what they wanted (i.e. full access to the RTL) so we were able to give it after many months of hard work from our engineering team.

    3. Re:It's marketting, not "open source". by Bruce+Perens · · Score: 1

      you must consult with Imagination before you change it.

      Yes. And what happens then?

      I haven't in general met many professors (or EEs) who understand much about intellectual property.

    4. Re:It's marketting, not "open source". by Anonymous Coward · · Score: 0

      all the EEs I have every met, whether in industry or academia are acutely aware of intellectual property
      since it impacts every facet of what they do. you can't make a chip, an fpga design, or even many discrete
      circuits navigating a huge minefield of licenses for IP and tools

      its quite sad that practitioners have to be ip lawyers, accountants, and contract negotiators as well as circuit
      designers, but thats the world they live in

    5. Re:It's marketting, not "open source". by Bruce+Perens · · Score: 1

      I get paid to train EEs within large companies on intellectual property issues, and to help the companies and their attorneys navigate those issues. Infringement is rife within software companies. Not because anyone wants to infringe, but because of a total lack of due diligence driven by ignorance.

    6. Re:It's marketting, not "open source". by TheRaven64 · · Score: 1

      If you want a MIPS implementation that you can run in an FPGA, then we've built one and released it under an Apache-style license (not exactly the Apache license, because the Apache license says 'the software' in a lot of places). It's an implementation of a version of the (64-bit) MIPS ISA that is over 20 years old, so any relevant patents have expired. We've been using this in teaching for a couple of years (one exercise is to replace the branch predictor, for example). It's written in a high-level HDL, so more amenable to research and teaching uses, because the code is easy to make invasive changes to.

      --
      I am TheRaven on Soylent News
  7. Re:Talk to us first if you wish to patent the chan by Bruce+Perens · · Score: 1

    The patent terms are whatever they want them to be. In general "reasonable" and "patent" don't happen together much. And "tiny", well I really doubt it.

    Having a company provide funds for a research grant and then reap the patent royalties isn't in general a good thing for society. The student researchers get paid like slave labor (if they get paid at all) and put what may be the best idea of their lives in some company's pockets.

  8. Re:Talk to us first if you wish to patent the chan by alexvoica · · Score: 1

    I think you are painting an incomplete picture of what we have done here. Absolutely every university we've talked to has embraced this agreement with open arms. This package is mainly designed for students who are learning about computer architecture at the undergraduate/graduate level and who need lab support material for the course. Giving them access to the open RTL which they can study during their labs is in no way enslaving them to anything - they will be getting a chance to see how a CPU architecture used in millions of devices is being implemented using Verilog.

  9. Most FPGAs are volatile by Anonymous Coward · · Score: 0

    Some (usually smaller) programmable logic devices are burn-once, including the classic small PLDs. Some devices (including newer versions of classic PLDs) are reprogrammable and nonvolatile like flash memory. Most FPGAs, including the large and very large FPGAs, are volatile, and have to be reprogrammed at each power-up.

  10. Re:Talk to us first if you wish to patent the chan by Bruce+Perens · · Score: 2

    OK. Can we see your agreements, please? Because that did sound very much like trolling for additional intellectual property to add to your portfolio.

    People who read this article have pointed out three open CPU designs in addition to the one that I remembered.

    While your product might be "production ready", please keep in mind that open projects are very often written to a higher standard than commercial ones, and the researchers involved are no less professional than your own developers. And their projects come with fewer intellectual property issues than yours.

  11. Re:Talk to us first if you wish to patent the chan by Garridan · · Score: 1

    I don't think that your statement of a generality applies to the specific, Bruce. The modifier "if you want to patent the changes" must not be discounted. So if you write a research paper on how you can tweak their architecture to produce some feature, you can simply elect not to patent it. If somebody else tries to patent the same thing, even the company in question, your research is prior art that anybody can use to strike the patent down.

    As an academic who has done patentable research, I can tell you that universities are keenly interested in building their IP portfolios. And any informed patent holder knows that any violation must be prosecuted, or the validity of the patent evaporates. End result: taxpayers getting sued for violating patents generated 100% within universities with public funding. No company need get involved.

    I don't know what century you live in... but universities operate like large corporations these days. They mistreat and underpay their workers as much as the law allows, they build massive IP portfolios, they pay their executives millions of dollars... I could go on.

  12. What evil f****** patent changes open design? by gweihir · · Score: 1

    I cannot see how you can be more dishonest, greedy and evil as a researcher. If anything in IP deserves to be called "stealing" then this is it.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  13. OpenRISC by unixisc · · Score: 2

    There is an alternative if one wants to avoid the strings Imagination has attached to the MIPS HDL sources. It's called OpenRISC, and it's from OpenCORES. It's based on the MIPS architecture, but has work-arounds around patented MIPS sections. Go w/ that if you want a fab to fab it out

  14. This is a response to RISC-V by Anonymous Coward · · Score: 1

    Berkeley University is pushing really hard to get universities to adopt RISC-V (an Open ISA and set of cores) as a basis for future processor and architecture research. The motivation behind RISC-V was to have a stable ISA that isn't patent encumbered, isn't owned by one company, and is easily extensible (OpenRISC didn't fit the bill here).

    I can see that ARM and MIPS would have a problem with this, especially as there is nothing particularly innovative or performance gaining about either ISA, and some recent RISC-V cores have demonstrated similar performance to some recent ARM cores in half the area. This is there way of fighting back against something open that stands to lose them significant marketshare.

    1. Re:This is a response to RISC-V by Bruce+Perens · · Score: 1

      Repeating the AC because he's posted at karma 0. That's "University of California at Berkeley", AC, but the rest of this is spot on:

      Berkeley University is pushing really hard to get universities to adopt RISC-V (an Open ISA and set of cores) as a basis for future processor and architecture research. The motivation behind RISC-V was to have a stable ISA that isn't patent encumbered, isn't owned by one company, and is easily extensible (OpenRISC didn't fit the bill here).

      I can see that ARM and MIPS would have a problem with this, especially as there is nothing particularly innovative or performance gaining about either ISA, and some recent RISC-V cores have demonstrated similar performance to some recent ARM cores in half the area. This is there way of fighting back against something open that stands to lose them significant marketshare.

      Cool. Someone found us the agenda!

    2. Re:This is a response to RISC-V by Anonymous Coward · · Score: 0

      > Cool. Someone found us the agenda!

      And (I guess *you* know that, but perhaps others don't) one of those "someones" is David Patterson (of Hennesy and Patterson fame). I guess those RISC-V folks really know what they're doing.

      Besides, the lowRISC effort is on its way to actually provide silicon to carry RISC-V, no FPGA, but "real".

      Good times ahead!

    3. Re:This is a response to RISC-V by alexvoica · · Score: 1

      This is NOT a response to RISC-V; there are many good RISC architectures out there designed for academic purposes (and beyond) and RISC-V is definitely one of them. What this is: we wanted to give professors teaching the MIPS architecture access to real RTL.

    4. Re:This is a response to RISC-V by TheRaven64 · · Score: 1

      lowRISC is cool, but it's not that useful for universities. For research (and teaching), FPGAs are much more useful because of the short turn-around. It takes me about 1-2 hours to go from making changes to our processor to finishing the boot of an OS on the FPGA and doesn't require anyone else's input (unless there are bugs, then some help is often useful!). The cycle for getting a chip fabbed is a much longer process, usually requiring a small team and a lot of money.

      --
      I am TheRaven on Soylent News
    5. Re:This is a response to RISC-V by Anonymous Coward · · Score: 0

      > lowRISC is cool, but it's not that useful for universities. For research (and teaching), FPGAs are much more useful because of the short turn-around.

      Yes, I get that: the nice thing about RISC-V (the architecture) and lowRISC (one of possibly many implementations, which strives to go all the way down to custom silicon) is that you get at all the intermediate steps.

      Quoting their FAQ:

      When can I buy a lowRISC SoC?

          As with most tech projects, the most accurate answer is âoeWhen itâ(TM)s readyâ. However, itâ(TM)s useful to consider some of the main milestones:

          * Release of an initial FPGA version: we expect to do this in the next 6 months, and then further development will be fully open to the community.
          * Production of a test chip: we expect to tape out a test chip towards the end of 2015.
          * Tape out of production silicon: this is likely to happen, at the earliest, a year after the first test chip (in 2016).

      Since everything is under a free license, you get to choose -- according to your needs.

      Note that I'm not associated in any way with the project: just an excited fanboi (which is kinda sad :)

    6. Re:This is a response to RISC-V by TheRaven64 · · Score: 1

      I'm moderately associated with RISC V (the lowRISC people are upstairs and I'm in the acknowledgements section of the RISC V spec). The main drawback of RISC V currently is the lack of software. Krste claims that the cost of the software ecosystem for RISC V will be around a billion dollars. My friends at ARM think that he's underestimated that by at least a factor of two. I had a student working on RISC V this year (using the BlueSpec in-order implementation) and the state of the LLVM toolchain is a joke - it's several man-years of work away from basic functional correctness (he had to fix a number of bugs to get simple benchmarks to work), getting it to be as performant as ARM (or even MIPS) is a lot further out.

      MIPS ought to have a big advantage there, but they've squandered it. MIPSr6 is actually quite a nice ISA (I like it more than RISC V), but it is not backwards compatible with MIPS I-V or MIPSr1-5 (yes, those are different. Just go with it), so they lose all of their software ecosystem.

      --
      I am TheRaven on Soylent News
    7. Re:This is a response to RISC-V by alexvoica · · Score: 1

      Somehow you have the impression that MIPSfpga is Release 6 - it is not. MIPSfpga is a simplified version of microAptiv, the same CPU that is inside the Microchip PIC32MZ family of MCUs. microAptiv is based on Release 3. Regarding breaking compatibility, that is also not (exactly) the case. Although you are correct that the ISA has been updated in Release 6, the instructions that have been removed are really old and not used by existing software. Even so, we still have trap and emulate mechanisms that ensure we do not break compatibility.

    8. Re:This is a response to RISC-V by TheRaven64 · · Score: 1

      Somehow you have the impression that MIPSfpga is Release 6 - it is not.

      Thanks for clarifying. There was nothing in the web page to indicate this (a fairly common omission on ImagTec blog postings, by the way).

      Although you are correct that the ISA has been updated in Release 6, the instructions that have been removed are really old and not used by existing software

      I'm sorry, but that's complete nonsense. All of the branch-likely instructions were removed and replaced by the compact branches. These are emitted by gcc and are very common in gcc-compiled code (which appears to use them when it can't find an instruction to fill the delay slot with). Trust me on this - I spend a huge amount of my life looking at objdump output from MIPS binaries and instruction traces.

      Even so, we still have trap and emulate mechanisms that ensure we do not break compatibility.

      No you don't. You reused the opcodes, unless there's a newer version of the spec than the one I've seen.

      --
      I am TheRaven on Soylent News
    9. Re:This is a response to RISC-V by alexvoica · · Score: 1

      Cool, thanks for the feedback. I will try to mention which architecture each CPU implements in the future so that it's clear for everyone. Regarding the ISA changes, let me explain further. For the cases you've mentioned we offer a software/hardware compatibility strategy which includes trap-and-emulate, trap-and-patch, and binary translation. To this end, although you are correct that some legacy instructions have been deprecated, binaries should still run because of this three pronged approach. Have a look at http://www.imgtec.com/mips/arc... and please use our forums for any questions since the guys there are quite good at replying.

    10. Re:This is a response to RISC-V by TheRaven64 · · Score: 1

      Regarding the ISA changes, let me explain further. For the cases you've mentioned we offer a software/hardware compatibility strategy which includes trap-and-emulate, trap-and-patch, and binary translation

      For the branch instructions with the reused opcodes, this means that you need to do it up front. This means that things like JVMs and anything else with a JIT requires rewriting. This is where a big part of the cost of the software ecosystem comes from. It also means that disassemblers and debuggers (which are another big investment) also need significant rewriting, rather than just adopting.

      Trap and emulate and trap and patch will only work if your MISPr6 processors have a special mode that will trap on any instructions that have had their opcodes reused. In such a mode, trap-and-patch usually won't work, because the compact branch instructions that are intended for use in the patching are in this set.

      The new ISA is a lot nicer than classic MIPS, but it's almost as much effort to support in software as RISC V or ARMv8. This is part of the reason why we (with my FreeBSD hat on) have been working closely with Cavium on ARMv8 recently. Existing customers for Cavium's MIPS parts (certain storage and networking vendors) have looked at MIPSr6 and seen that the cost of migrating their code from MIPS III or MIPS64r1 to MIPSr6 is about the same as the cost of migrating to ARMv8. They've also seen the lack of serious investment in LLVM (until very recently, and even then it's far smaller than ARM alone - Apple, Google and ARM are investing an order of magnitude more effort than the MIPS ecosystem) and decided that it's worth working out the cost of an ARMv8 migration.

      I mentioned this to Daniel over a year ago, but apparently ImagTec decided that keeping their customers' customers on MIPS wasn't a priority.

      --
      I am TheRaven on Soylent News
  15. Great news by AaronW · · Score: 1

    This is great news. When I was in college the microprocessor design class used a variant of MIPS though this started the quarter after I took the class. In my class we had to wire-wrap a 16-bit MIPS-like CPU using discrete chips and a couple programmable ones. MIPS is relatively easy to implement for educational purposes due to the simple instruction encoding and clean architecture. MIPS, unlike some other processors like ARM, also allows you to add your own instructions using coprocessor 2 which can be a great way to differentiate a processor and enhance it for different tasks. MIPS is a much simpler design compared to ARM or even PowerPC. MIPS is still widely used, especially in networking devices.

    For example, my current employer has added a lot of instructions useful for encryption and hashing as well as some useful atomic instructions.

    The move from 32-bits to 64-bits is actually quite clean on MIPS which did not require any major changes to the instruction set other than adding 64-bit instructions and sign-extending the 32-bit instructions. There are a few warts on it, such as the fact that the instruction following a branch instruction is always executed (SPARC is the same way). This is no longer all that useful with modern superscalar architectures and the branch delay slot can't always be filled with something useful. Things are also a bit cramped for 32-bits since only the lower 2GB of memory is available for user-space. Kernel space (KSEG0) is from 0x80000000-0x9fffffff and an uncached copy is at 0xa0000000-0xbfffffff. 0xC0000000 - 0xDFFFFFFF can be mapped using the translation look-aside buffer, making another 512MB available to the kernel. Both of these address ranges map directly to the lower 512MB of RAM which somewhat limits things. In 64-bit mode this isn't a problem though since all addresses are sign-extended. Another nice feature in kernel mode is that all physical addresses can be directly accessed, without requiring any special mapping other than setting bit 63 to 1.

    Most MIPS processors do not use a hardware page table walker, instead relying on a software configured translation look-aside buffer. When there's a page miss, a quick interrupt occurs to replace an entry in that table with some hardware assist. This goes back to the original philosophy of keeping the hardware design simple. Due to the way it works, it allows total freedom with how page tables are represented in the operating system though there can be a slightly bigger overhead compared to hardware page tables.

    The instruction set is quite clean and the instruction encodings are quite simple with only a few classes of instructions, unlike ARM64. Instruction decoding can be handled with only a few look-up tables. MIPS assembly language is far simpler and straight forward than, say X86 and it's quite mature, though not all processors implement all instructions. Many embedded MIPS processors lack floating point and the multimedia extensions, and many are 32-bit only. This helps cut cost and power when making chips for devices that don't need these features. MIPS also can scale up nicely. For example, the chips I work with currently scale up to 48 cores per chip and with two chips running in tandem Linux runs on 96 cores, all with a coherent cache. The newer ABIs are nice in that the only real difference between N32 and N64 is that pointers are 64-bits instead of 32-bits, just about everything else is the same so you get all of the features of 64-bit registers but keep the compactness of 32-bit pointers. This has been present for many years and is a fairly recent addition to X86 and ARM.

    --
    This post is encrypted twice with ROT-13. Documenting or attempting to crack this encryption is illegal.
  16. Re:Talk to us first if you wish to patent the chan by Bruce+Perens · · Score: 1

    You've made my point for me.

    And any informed patent holder knows that any violation must be prosecuted, or the validity of the patent evaporates.

    No, that's just the ignorance of the uninformed that "everybody knows", but it's wrong. You don't lose your patent from failing to enforce it. You might be confusing it with trademarks, which can go into the public domain if you allow them to become generic terms rather than specific brands. And you can sometimes lose the capability of being able to enforce against a specific infringer if you hold back until the market develops, that's the Doctrine of Laches. But you don't lose your patent. Nor would you lose your copyright due to failure to enforce.

  17. Re:Talk to us first if you wish to patent the chan by alexvoica · · Score: 1

    Please understand that this is in no way trolling or any for of patent gathering/expansion. The reality behind this program was that teachers needed more resources for their coursework. We reached out to a few universities and everyone was very excited about using real RTL in their courses; for example, most computer architecture courses presenting RISC CPUs have a section on the load/store unit - once presenting the theory, being able to then point to the Verilog code and say "and here is how this is implemented in a MIPS32 CPU" is extremely valuable for students. Then students will go in the lab and use FPGAs to boot Linux and write C or assembly code. This is what will happen in the classroom. Theoretical "what ifs" don't really apply here since we are absolutely working with universities to support them - and not against them. That was never our intention and never will be. Coming back to your point, we expect universities to respect our agreement when they sign up to the program (which essentially says they can't go into silicon production and can't patent changes to our code unless they talk to us first). If they find this agreement too restrictive, we will try to adapt the terms but so far absolutely everyone has been very supportive and positive about this.

  18. definition of 'open' by lkcl · · Score: 2

    Microsoft has an "Open License" which allows you to look at Windows NT source code. it's "open", yes? pay them $USD 1m per year, you get an "open" look at the source code of Windows NT. but if you ever dare to use it, talk about it, or do ANYTHING other than *read* it.... they will sue the fuck out of you.

    bottom line: can we PLEASE stop using the word "open" in context with these types of stupid, stupid proprietary arrangements? it really isn't helping.

    there are plenty of *LIBRE* licensed implementations of MIPS out there: many people have pointed that out (in comments i can see above this one), they're on http://opencores.org/ - there are at least eight MIPS core implementations that i can see, there, possibly the best one (most complete) is this: http://opencores.org/project,m... which has a 5-stage pipeline and a harvard architecture.

    so please, stop using the word "open" to refer to proprietary, restricted and patented material.

  19. Re:Talk to us first if you wish to patent the chan by Anonymous Coward · · Score: 0

    I think this agreement is better than what my university has now. We also did some work at university with a production level design, but it required signing several very serious NDAs just to follow the course.

    I heard they were looking into using OpenRISC but the architecture does not fully match the course so it would be a lot of work. This kind of deal would look useful to me, since bachelor students are very unlikely to create patentable stuff for a simple class project of 20 hours (well ok, with the current standars for patenting something they can probably produce several key innovations in this timeframe).

  20. Re:Talk to us first if you wish to patent the chan by N+Monkey · · Score: 1

    You've made my point for me.

    And any informed patent holder knows that any violation must be prosecuted, or the validity of the patent evaporates.

    No, that's just the ignorance of the uninformed that "everybody knows", but it's wrong. You don't lose your patent from failing to enforce it. You might be confusing it with trademarks, which can go into the public domain if you allow them to become generic terms rather than specific brands. And you can sometimes lose the capability of being able to enforce against a specific infringer if you hold back until the market develops, that's the Doctrine of Laches. But you don't lose your patent. Nor would you lose your copyright due to failure to enforce.

    True you won't lose the patent, but there is a time limit on suing an infringer, isn't there?

    Anyway, given that textbooks often discuss MIPS, good to see something being offered to Academia.

  21. Re:Talk to us first if you wish to patent the chan by Bruce+Perens · · Score: 1

    It is a time-limit on damages, which is not the same thing as a time limit on lawsuits. There is still the potential to restrain an infringer who started 6 or more years ago from further infringement through the courts - and totally kill their business - even though damages for the infringement can not be recovered. And you can sue any other infringer.

  22. Re:Talk to us first if you wish to patent the chan by Bruce+Perens · · Score: 1

    I found the commenter who posed this as a response to RISC-V interesting. The University of California at Berkeley has a completely public implementation, under the BSD license, without patents filed, which your effort appears to be positioned against.

  23. The of advantages of MIPSfpga over RISC-V by panchul · · Score: 1

    There is a number of advantages of MIPSfpga over RISC-V including:

    1. MIPS architecture is better supported by textbooks. It is used as the example of architecture _and_ an example of microarchitectural implementation in Patterson & Hennessy and in Harris & Harris

    2. MIPSfpga shares Verilog source code with MIPS microAptiv UP - a commercial core that has many licensees including Microchip Technology. The university professors do have an interest to teach their students with an industrial core, not some subset or a core created in academia and not tried in industry much.

    3. MIPS architecture has large ecosystem (a dozen of commercial RTOS-es, Linux, compilers, etc)

    The main idea is: the students can play with the core, create multicore systems, modify caches, etc. If they invent something useful, they can attract venture investment, buy a commercial license for MIPS microAptiv UP and create their own ASIC design company.

    (The code in MIPSfpga is not FPGA-specific. It uses Xilinx and Altera macros for memory in caches, but with small modifications it can be used to make an ASIC)

    1. Re:The of advantages of MIPSfpga over RISC-V by Bruce+Perens · · Score: 1

      I'm familiar with the Microchip implementation. This is a 300-MHz-class 32-bit processor. Not particularly modern and not really fertile ground for R&D.

      We did have two or three suggestions from commenters of open MIPS processor implementations, some of which are more modern. One uses a proprietary high-level HDL, which I haven't investigated.

    2. Re:The of advantages of MIPSfpga over RISC-V by panchul · · Score: 1

      Well, this core is useful for a number of student project. For example, the students can implement a multicore system on chip that consist of a lot of non-coherent cores for specialized computations. Or, for example, they can substitute L1 cache with their own cache that implements MESI protocol or some multicore coherency protocol they invent. Even for the basic course they can connect wires to the internal registers and observe basic pipeline execution.

      Sure, you can do the same thing with educational subsets of MIPS (there are many of them). But they frequently lack some important features (like properly implemented exception processing, or TLB MMU etc).

      On the other hand, you don't want to teach the intermediate students with a complicated out-of-order superscalar processor with hardware support for multithreading, hardware-assisted virtualization, vector extensions and other features. You will just confuse the students. Complicated processors is another step.

  24. The advantages of MIPSfpga over OpenRISC and RISCV by panchul · · Score: 1

    There is a number of advantages of MIPSfpga over RISC-V and OpenRISC including:

    1. MIPS architecture is better supported by textbooks. It is used as the example of architecture _and_ an example of microarchitectural implementation in Patterson & Hennessy and in Harris & Harris

    2. MIPSfpga shares Verilog source code with MIPS microAptiv UP - a commercial core that has many licensees including Microchip Technology. The university professors do have interest in teaching their students with an industrial core, not some subset or a core created in academia and not tried in industry much.

    3. MIPS architecture has large ecosystem (a dozen of commercial RTOS-es, Linux, compilers, etc)

    The main idea is: the students can play with the core, create multicore systems, modify caches, etc. If they invent something useful, they can attract venture investment, buy a commercial license for MIPS microAptiv UP and create their own ASIC design company.

    (The code in MIPSfpga is not FPGA-specific. It uses Xilinx and Altera macros for memory in caches, but with small modifications it can be used to make an ASIC)

  25. MIPSfpga has a clear path to commercialization by panchul · · Score: 1

    FPGA is reconfigurable hardware.

    Verilog code in MIPSfpga is not FPGA-specific. It uses Xilinx and Altera macros for memory in caches, but with small modifications it can be used to make an ASIC.

    MIPSfpga has a clear path to commercialization. The main idea is: the students can play with the core, create multicore systems, modify caches, etc. If they invent something useful, they can attract venture investment, buy a commercial license for MIPS microAptiv UP and create their own ASIC design company.

  26. The problem with open-source MIPS clones by panchul · · Score: 1

    The problem with open-source MIPS clones - they are not tried in the industry much.

    MIPSfpga shares Verilog source code with MIPS microAptiv UP - a commercial core that has many licensees including Microchip Technology. The university professors do have an interest to teach their students with an industrial core, not some subset or a core created in academia and not tried in industry much.

    The main idea is: the students can play with the core, create multicore systems, modify caches, etc. If they invent something useful, they can attract venture investment, buy a commercial license for MIPS microAptiv UP and create their own ASIC design company.

    1. Re:The problem with open-source MIPS clones by TheRaven64 · · Score: 1

      The university professors do have an interest to teach their students with an industrial core, not some subset or a core created in academia and not tried in industry much.

      Really? Usually we want to use something for teaching that's easy to understand and modify...

      The main idea is: the students can play with the core, create multicore systems, modify caches, etc.

      Which you don't do with a simplified Verilog implementation. If you want to be able to easily modify something in an academic setting, then you want a high-level HDL, such as BlueSpec or CHISEL. BERI or Rocket fits this need a lot better that MIPSfpga.

      --
      I am TheRaven on Soylent News
    2. Re:The problem with open-source MIPS clones by panchul · · Score: 1

      *** Really? Usually we want to use something for teaching that's easy to understand and modif ***

      I agree, what I actually meant is:

      1. To illustrate the basics of pipelining, stalls and forwarding it is better to deal with a very simple subset processor

      2. However eventually it is useful to show the students a real industrial core as well

      So in my opinion it is better to use both: simple subsets and industrial cores

    3. Re:The problem with open-source MIPS clones by TheRaven64 · · Score: 1
      BERI (our processor) has register renaming, forwarding, branch prediction, and so on (and can boot a full 64-bit OS), but it is not exactly like an industrial processor because it simply doesn't make sense to use the same techniques when targeting an FPGA as an ASIC. For example, most of our TLB is direct mapped, because block RAMs are very cheap on an FPGA so we can have 128 TLB entries in a BRAM and look them up based on a hash of the virtual address. Some techniques such as the nearly-associative memory stuff from UPenn can improve this. On an ASIC, this would be a silly way of doing it, as TCAMs are cheap (on an FPGA, they use large numbers of logic units and so burn through area very quickly in comparison to using the BRAM blocks). Generally, people who prototype ASICs on FPGA don't care much about the performance of the FPGA instantiation (or the cost, as the most expensive FPGAs are orders of magnitude cheaper than a fab run).

      Showing an industrial core is not really possible. MIPSfpga is actually simpler than BERI in a number of ways (though, being written in Verilog, likely to be much harder to understand than something like BERI or Rocket). A real core aimed at anything other than the embedded microcontroller market is going to be impossible to get access to. The kind of things that are substantially different from BERI or Rocket are the high-end out-of-order superscalar chips that no company is going to show you without paying a very big license fee.

      --
      I am TheRaven on Soylent News
  27. You can put your design in silicon - with a commer by panchul · · Score: 1

    You can put your design in silicon - with a commercial license.

    MIPSfpga shares Verilog source code with MIPS microAptiv UP - a commercial core that has many licensees including Microchip Technology. The students can play with the core, create multicore systems, modify caches, etc. If they invent something useful, they can attract venture investment, buy a commercial license for MIPS microAptiv UP and create their own ASIC design company.