none
How to get the HAL (Hardware Abstraction Layer) and it's API for a Custom CPU and Motherboard RRS feed

  • Question

  • We are designing and soon taping-out to manufacturing a specialty 128-memory addressing CPU that contains a vector processor array that can do general math on Signed and Unsigned 128-bit, 64-bit, 32-bit, 16-bit and 8-bit Integer, Floating Point and Fixed Point values. The vector math array contains 8192 micro-cores so that general number crunching and 8K DCI Video processing of 128-bit RGBA/YCbCrA pixels (32-bits per channel) can be done in real time. It is a general purpose CPU that has these SIMD/MIMD math processing cores for general math and large frame Video/Still Photo image processing. Memory addressing is full 128 bits in size so we need a version of Windows that can address 128-bit pointers and that 128-bit amount of DRAM memory (i.e. address Zettabytes of RAM!) via our on-chip DMA and Memory management unit.

    We need access to the Microsoft HAL (Hardware Abstraction Layer) and it's API so we can get Windows 2016 Server and Windows 10 OS'es to work DIRECTLY on this new chip which is to be a DIRECT COMPETITOR to INTEL and AMD general purpose CPU's for sale to the general public for Desktop and Server usage. We have basically combined a CPU with a GPU on a single chip die.

    Who specifically at Microsoft do we talk to in order to get help with the HAL API so our custom instruction set CPU will talk to the HAL and Windows?

    How and When can we get a 128-bit version of Windows that can support 128-bit memory addressing?

    What is the Microsoft HAL Development Team's contact phone number, email address and/or their social media weblinks and/or websites?



    Saturday, October 28, 2017 12:03 AM

Answers

  • There is no publically available HAL spec. Not only will a new HAL need to be written, but the kernel (CPU architecture-specific part of NTOSKRNL) will also have to change, as well as lots of other things. As I wrote earlier, you will need to form a strategic relationship with Microsoft to accomplish your goals.

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Sunday, November 26, 2017 7:30 PM
    Moderator

All replies

  • Hi Henry,

    In advance, sorry if I misunderstand your question. (What you mentioned is hard for me to understand.)

    If HAL means CPU information, please refer to the following articles:

    getting information about cpu

    https://social.msdn.microsoft.com/Forums/en-US/cc188c43-c74e-41e8-95a5-f94e6b553ae9/getting-information-about-cpu?forum=vbgeneral

    How To Get Hardware Information (CPU ID, MainBoard Info, Hard Disk Serial, System Information , ...)
    https://www.codeproject.com/Articles/17973/How-To-Get-Hardware-Information-CPU-ID-MainBoard-I

    I would like to confirm.
    Does a 128-bit version of Windows exist at the present time?

    Regards,

    Ashidacchi

    Saturday, October 28, 2017 12:58 AM
  • What you are suggesting is a very, very large undertaking. It is much more than a matter of modifying the HAL. It took Microsoft years to convert from 32-bit architectures to 64-bit, and that was on an CPU with a compatible instruction set. It also took years to port to ARM. Of course, they now know how to do it, but it is still far from trivial. Combining another stretch (from 64-bit to 128-bits) and a processor architecture port would likely take years to do.

    If you're serious about this, then before you tape out you will need to work with Microsoft to ensure that your CPU architecture contains the features and instructions needed to run Windows (atomic read-modify-write instructions, multiple virtual addresses each with their own page protection pointing to the same physical page (this is why the port to the Intel 860 failed), and lots more). If the past is anything to go by, then you will either need to convince Microsoft that the new processor would be viable (sell tens of millions of units) and or pay them to do the port (assuming they have the bandwidth and are willing). I would start with Terry Myerson, executive vice president of the Windows and Devices group. The only way to get this done would be a strategic negotiation between your company and Microsoft, so have the President of your company call the switchboard at 425-882-8080, and ask for Terry.

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Saturday, October 28, 2017 2:51 AM
    Moderator
  • Sorry about the long delay in writing back...
    I had many technical things to take care of!

    We can do the port of the HAL ourselves...we just need the API docs
    and we will do the "Thunking" between the 32-bit/64-bit Windows parts
    and our 128-bit CPU sections.

    If Microsoft wishes to run Win10/Server 2016/2018 on our 128-bits
    processor at 60 GHz!, that would be ideal. I fully understand how big
    of a job this this because our Midgrid software which takes advantage
    of this fancy CPU runs at over 80 MILLION+ lines of code itself.

    Since ALL of our function definitions start with Character_String_Type,
    Real_Number_Type, Fixed_Number_Type, Signed_Integer_Type and UnSigned_Integer_Type along with EVERY object, record and custom
    data type parameter size-checked with SizeOf(), it's EASY FOR US to
    change destination CPU/OS word widths on all 80 million lines of our code
    with just a bit-width change in a SINGLE HEADER FILE and a simple re-compile!

    So we ABSOLUTELY KNOW windows 10/Server products ain't as easy to change!
    Ergo, WE will fit our code to the Windows HAL. We were definitely aware of the
    DEC Alpha, ARM and i860 port issues so we virtualized all the base functions
    of our processor and made it as easy as possible for OS developers
    to port over to our chip.

    Memory Protection = Check!

    Data and code page Randomization and protection = Check!

    Multi-format  pixel types, anti-aliasing and Direct-2D/Direct-3D-like
    drawing and video operations (all alpha transparency channeled) = Check

    Hardware-based Encode/Decode/Resize/Filter/Special Effects
    in multiple and common codecs = Check!

    Support for up to 256 monitors at up to 128k by 128k pixel displays = Check!

    Infinite-size/scaling font and image rendering technology
    for ultra high DPI displays = Check!

    Virtualized comm-ports, hardware-based Virtual
    IPV4/IPV6 stacks, and multi-stream encrypted Comms = Check!

    Virtualized local and cloud-based disk and storage array networks
    = Done!

    We made it VERY EASY to port almost ANY OS to our chip!

    Sooooo.....Is it Terry I need to talk to SPECIFICALLY who
    can get me a copy of the Windows HAL API documentation?
    We at this time, CANNOT offer a strategic negotiation
    to Microsoft because of the significant technical
    advantages of our processor over Intel iCore/Xeon
    and AMD Threadripper/Epyc platforms. We merely
    ask Microsoft for HAL API documentation and we
    will MAKE IT WORK on our end! And once we do that,
    we will be most happy to demo our system to you
    running at a FULL 60 GIGAHERTZ !!!

    We can run 8192 of 128-bit/64-bit/32-bit/16-bit/8-bit
    Fixed-Point, Floating Point and Integer micro-cores at a
    FULL 60 GHz....AMD/Intel/Qualcomm/Samsung/Apple Can't!

    That's WHY we're being a bit secretive and under-the-radar
    with our GaAs/GaN substrate CPU technology right now!

    Our manufacturing capability is FULLY IN-HOUSE
    on our own fabs using a custom-designed-and-built
    multi-station, multi-electron-beam etching system that
    will be able to output 5,000 GaAs/GaN substrate chips
    per day on an initial basis! We estimate runs of 25,000
    chips per day within two-to-three years at full capacity!
    Since circuit line widths are in excess of 200 nanometres
    on such monolithic microcircuits, this production capacity
    can be supported quite easily by the multi-beam etching system.

    Sunday, November 26, 2017 7:41 AM
  • There is no publically available HAL spec. Not only will a new HAL need to be written, but the kernel (CPU architecture-specific part of NTOSKRNL) will also have to change, as well as lots of other things. As I wrote earlier, you will need to form a strategic relationship with Microsoft to accomplish your goals.

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Sunday, November 26, 2017 7:30 PM
    Moderator
  • I will give MS a call at 425-882-8080 (i.e. Terry) mid-week.
    I was quite surprised at actually HOW DIFFICULT IT IS to get
    to someone who knows something about the Win HAL!

    Like I said earlier, we just need access to the HAL DOCS,
    we can write everything ourselves. We have DECADES
    worth of Mission Critical Systems-level Coding experience!

    It's not like our code is that much smaller than Windows itself!
    It's 80 million+ lines! If WE can do it, me thinks Microsoft can too!


    Henry A.Eckstein Lead Hardware and Software Developer Midgrid Media Engine Project Midgrid.com 2751 Oxford Street Vancouver, BC, Canada V5K 1N5 Phone: 604-253-3990 Email: henry@comwave.com

    Monday, November 27, 2017 2:32 AM
  • Disclaimer: I don't work for MS, but I have been working very closely with core OS team for the last 25 years.
    Prior to Win2000, there was a HAL kit, and there were about 70 different HALs (across all supported CPUs), but that was discontinued when they realized that they could get rid of it by requiring ACPI support and re-architecting the I/O subsystem to support bus drivers, and by now it is hopelessly out of date. The HAL is only a tiny part of what you will need to write to port Windows; as I wrote earlier, you need a new kernel, which is part of NTOSKRNL.EXE
    Even the internal docs won't be as useful as you would hope, because, as you would expect, a lot of the details are only present in the code. Also, Windows is a moving target. There are thousands of engineers changing Windows every day, so this isn't something that you can do by yourself, and I wouldn't bet on MS giving you the sources and letting you fork your own branch of Windows. So, your only hope is to get them interested in supporting your processor. 

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Monday, November 27, 2017 5:15 AM
    Moderator
  • This is starting to sound like a bit of a nightmare compared to our Linux OS port!

    You would think that the ONLY THING Microsoft needs would be a pointer to a
    disk buffer and it's driver code, a pointer to the graphics buffer and it's driver code
    and some basic HID (Human Interface Device) code for BIOS/Keyboard/mouse/camera/USB ports
    and some Ethernet/ATM/SONET Comms.

    Our processor runs 128-bit Floats at 490 TeraFLOPS+
    NOPE! That is NOT a misprint! -- That is 490 TeraFLOPS
    of 128-bit Floats, 980 TeraFLOPS of 64-bits floats or
    1.9 PetaFLOPS of 32-bit floats! This is NOT some
    Intel Atom or Qualcomm Snapdragon chip --- It's a
    full-blown SUPERCOMPUTER that fits in a shoebox!

    You might think MS would actually BE INTERESTED in porting its
    OS'es to a single-chip product that has more CPU and I/O horsepower
    than ---MULTIPLE--- IBM Z90 Mainframes and HPE Superdome Servers!

    Anyways...I will contact Terry later this week.


    Henry A.Eckstein Lead Hardware and Software Developer Midgrid Media Engine Project Midgrid.com 2751 Oxford Street Vancouver, BC, Canada V5K 1N5 Phone: 604-253-3990 Email: henry@comwave.com

    Monday, November 27, 2017 7:58 AM
  • Windows is far more sophisticated than Linux, and while Windows was designed to support multiple CPU architectures, ease of porting was not a principle goal of the design or implementation philosophy (because it was not expected to be done often). As I have mentioned, this needs to be a strategic partnership between your company and MS, and MS will need to see value in devoting considerable resources to the project.

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Monday, November 27, 2017 6:27 PM
    Moderator